字符串和数组常用函数的汇总
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
//php中字符串操作函数的回顾
//查询一个字符串在另个字符串中出现的问题
$strA="esdnxzlkcsnknlkfnjsernvszlkdfngflkdnldsnalsdnakjdnbkjbvakkcs";
$strB='dn';
$stc=strrpos($strA,$strB); //strpos后面可以跟三个参数,其中最后的一个参数是可选项,用来表示计算的起始位置:
echo $stc."<br />";
//字符串的截取函数,并返回截取后的字符串
$strc=substr($strA,5,5); //该函数表示的是冲第五个字符开始截取$strA,截取的长度是5
echo $strc."<br />";
$strc=strstr($strA,"Kcs",true); //从字符串$strA中截取字符串,开始的位置是“kcs” ,第三个参数是可选参数,表示的正向截取和反向截取。函数自身是区分大小写的,如果不限定的话 最好i;
//字符串的替换函数
$strc=str_replace("kcs","aaa",$strA); //区分大小写的替换; 该方法可以用来去掉字符串中出现的空格
$strc=str_ireplace("ksc","aaa",$strA); //不区分大小写的替换;
$strc=strtr($strA,"ksc","bbb") ; //该方法的使用方法是str_replace相差的不大,唯一的区别就是bbb这里的参数不能为空,这里的替换都是完全的替换
echo $strc;
//字符串的比较函数
$strD = strcmp($strA,$strB); //用来比较两个字符串的大小,如果两个字符串相等则为0,如果是大于则wei 1,小于的话返回的是-1,比较的仅仅是第一个字符
echo $strD;
//取代字符串两端的空格的炒作
trim();
//在字符串中插入空格,或则其他字符的函数
chunk_split();
//字符串装换成数组的操作
str_split();//根据字符的长度进行切割
split();//根据字符进行切割
explode();//根据字符进行切割
//数组的常用的函数
array_values(); //提取数组中所有的键值
array_keys() ; //提取数组中的所有的键名
array_flip(); //该函数是将数组中的键名和键值进行了对换,如果出现了重复,将会被后面的给替换掉;
in_array("search",$strA); //判断数组中时候存在要查找的键值,如果存在则返回1,否则的返回0;
array_search() ; //用来搜索数组中是否存在你要查询的键值,如果存在则放回对应的键名;
array_key_exists() ;//用来查找某个键名是否存在数组中;
isset($arr['a']); //判断是否设定该键名
//数组的指针函数
current() ;// 返回数组当前指针所对象的键值
key(); //返回数组当前指针所指的键名
pos(); //功能和current功能相同
prev(); //将数组的指针往回跳转一个
next(); //指针指向下一个
each(); //将当前的指针对应的元素转成一个新的数组,并将指针指向下一位
end(); //指针指向最后一位;
reset();// 指针指向第一位
list($key,$value)=each($arr); //获得数组当前元素的键名和值
//数组和变量之间的转换
extract(); //这个函数比较牛逼,是将数组转键名为变量,键值为变量对应的值的一系列的变量;
compact(); //将给定的变量转成对一个数组
//数组和字符串之间的相互的转换
explode();//该函数是张字段分割成字符串
implode();//该方式是将数组转成字符创
//数组的填充和分割
//数组的分段
array_slice($strA,0,3); //将一段数组从$strA中取出来,此函数忽略了键名;
array_slice($strA,0,3,array('black',"maroon"));//将数组中的一段去除,与上个函数不同的是,返回的序列将会从原来的数组中删除
array_chunk($strA,2,true) ;//该函数的意思是将指定的数组划分中两块,并且保留原有的键名。如果不需要保留的话,使用false
//数组的填充
array_pad($strA,5,"x") ;//如果数组的长度不够5位,值剩下的几位将会用x来进行填充
//数组与栈
array_push(); //在数组的尾部添加一个或则多个成员
array_pop(); //在数组的尾部删除一个成员
array_shift(); //在头部删除一个删除
array_unshift(); //在数组头部插入一个成员
//回调函数
array_walk($arr,'function','words') ;//使用用户函数对数组中的每一个成语进行梳理(第三个参数传递给回调函数function)
array_mpa('function',$arr1,$arr2);//可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同);
array_filter($arr,"function") ;//使用回调函数过滤数组中的每一个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变 。《功能很强大》,相当于是对数组中的每一个成员进行了过滤;
array_reduce($arr,"function","*"); //转化为单值函数(*为数组的第一个值)
//数组中的排序
sort($arr);// 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr) ; //由大到小的顺序排序(第二个参数为按照什么方式排序)忽略键名的数组排序
usort($arr,"function") ; //使用用户自定义的比较行数对数组中的值进行排序(function中有两个参数,0表示相等,整数表示第一个大于第二个,负数表示第一个小于第二个),忽略键名的数组排序
asort($arr); //由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr);//y由大到小的顺序排序(第二个参数为按照什么方式排序)保留键名的数组排序
uasort($arr,"function"); //使用用户的自定义的比较函数对数组中的值进行排序(function中有两个参数0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序
//通过键名对数组进行排序
ksort($arr) ; //按照键名正序排序
krsort($arr) ; //按照键名逆序排序
uksort($arr,"function") ; //使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
//自然排序法排序
natsort($arr) ; //自然排序(忽略键名)
natcasesort($arr) ; //自然排序(忽略大小写,忽略键名)
//数组的计算
array_sum($arr); //对数组内部所有的元素求和运算
//数组的合兵
array_merge($arr1,$arr2); //合兵两个或则多个数组相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
//数组的差集
array_diff($arr1,$arr2) ; //返回差集结果数组
array_diff_assoc($arr1,$arr2) ;//返回差集结果数组,键名也做比较
//数组的交集
array_intersect(); //返回交集结果数组
array_intersect_assoc(); //返回交集结果数组,键名也做比较;
//其他的数组函数
range(0,12);//创建一个包含指定范围单元的数组
array_unique(); //移除重复的值,新的数组保留原始的键名
array_reverse();//返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2); //从数组中随机取出一个或 多个元素
shuffle($arr); // 将数组的顺序打乱
?>
</body>
</html>