数组函数:
1.排序类:【1.无返回值,传值引用,就直接对原数组进行了修改】
按V:sort,rsort,asort,arsort,
按K:ksort,krsort
按字母:
natsort();//区分大小写的排序
natcasesort();//不区分大小写的排序,
当遇到字符完全一样,按照数字排 eg: FILE1,FILE2, 这两个字符相同,再按照数字1<2排,所以结果 FILE1,FILE2
回调:
usort($arr,"strnatcmp")//回调类的排序,把$arr数组里的每一个元素丢到strnatcmp()[非自然数排序]处理【返回新的排序数组】
规律:
没有"k",排序按照【value】排序,排序有"a"的表示要保留KEY,有"r"的倒序排
有“k”,排序按照【KEY】排序,有"r"的倒序排
有"u"的,表示要丢到回调函数中处理的
2.键值操作类:【都有返回值,没有在原来参数上修改】
1
.array_values($arr);//获取$arr中的值
重排,去掉下标【返回值新索引数组】
2.array_keys($arr[,"str",true])//获取$arr中所有字符是"str"的下标,形成索引数组,true表示区分大小写【返回新索引数组】
3.array_search(
"is",$arr[,true]
) //返回"is"在$arr中的键值,找不到返回fales,true表示严格严格按照类型(8,"8")【返回第一个匹配值】
4.in_array("str",$arr);//判断"str"在$arr中是否存在,【返回BOOL】
5.is_array($arr);//判断是否是数组【返回BOOL】
6.
array_key_exists(
$name,$arr); //查询$arr中是否有$name,【返回BOOL】
7.array_flip($arr);// 交换键值,如有重复,后来居上,【返回新数组】
8.array_reverse($arr);//数组顺序反转,param2:bool无效【返回新关联/索引数组】
3.元素个数和唯一性
1.array_unique($arr);//去掉$arr中的重复值,重复的保留第一个值,【返回数组,键值保留】
2.array_count_values($arr)//统计数组值出现的次数,【返回数组,KEY为原来数组的值,VALUE为统计的次数】
3.count($arr[,1])/sizeof();//统计$arr的元素个数,参数"1"表示统计多维数组开启,默认0为关闭【返回统计个数】
4.回调函数
1.array_filter($arr,"function");//把$arr放到函数function中处理,【返回判断为TRUE的数据组成新数组,键值保留】
2.array_walk($arr,"function"[,"data"]);//把$arr放到
function(
&
$v,$k,$data)中处理【返回值为bool】
3.array_map("function",$arr,$arr2,$arr3,....);//把所有数组返回到回调函数统一处理,【返回数组】
5.拆分,合并,分解,接合数组
1.array_slice($arr,1[,2]);//在$arr中,从第二个开始取[,返回俩个值]【返回新数组,键值保留】
2.array_splice($arr,1[,2,"aaa","bb"]);//删除或替换,从$arr第二个开始取,删除或替换2个值【返回值为数组】
3.array_combine($arr1,$arr2);//数组$arr1为KEY,$arr2为VALUES结合形成新索引数组【返回索引数组】
4.array_merge($arr1,$arr2,$arr3...);//数组进行合并,有重复,后来者居上【返回新数组】
5.array_intersect($arr1,$arr2)//返回两个数组的交集,键值不变
6.array_diff($arr1,$arr2)//返回两数组的差集,返回的值为第一个数组的值,键值不变
6.数组的数据结构【2.无返回值,传值引用,就直接对原数组进行了修改】
1.array_shift($arr)//从开头,删除数组第一个元素
2.array_unshift($arr,"one","two")//从开头,添加元素
3.array_pop($arr)//从结尾,删除数组最后一个元素
4.array_push($arr,"aaa");//从结尾,添加元素
6.current($arr)//
返回数组中的当前单元 比如是关联数组是不知道下标,可以输出当前数组的办法解决
7.key($arr)//返回当前指针指向元素的键值
8.next($arr)//当前指针下移
9.pre($arr)//当前指针上移
10.end($arr)//指针指到最后
11.reset($arr)//指针回归到开头
12.unset($arr)//销毁此数组
7.其他
1.array_rand($arr,2);//随机返回两个$arr数组当中的key【返回值为值或者数组】
2.shuffle($arr)//随机的重组$arr,顺序变乱【返回新数组,保留键值】
3.array_sum($arr);//返回$arr的value的和【返回一个值】
4.range(0,10,2,)//快速创建0,10的数组,间隔为2,所以有5个值【返回新索引数组】
5.
http_build_query($arr)//把关联数组转换成一个经过urlencode加密的URL eg:array["a"=>2];=>URL:a=2&
字符串函数
返回值为自字符
1.
substr
(字符串,开始地方,[返回字符串的长度]);//
截取字符串的一部分,第一个字符位置为0
2.
substr_replace($str,"aaa",start[,length]);在$str上操作,从第start个开始,把【后边】的字符[全/或length个]
替换
3.sub_count($str,"is"[,5,10]);//
[ 从第五个字符开始,搜索长度为10,]搜索is在$str中出现的次数,【返回次数】
4.
strstr($email,"@"[,true]) //从头开始搜索,无true返回@后边字符,有true返回@前边的字符[strrchr对比]
5.strrchr($email,"@")//从结尾开始搜索,返回@后的所有字符
6.
str_replace(被替换词,替换词,被搜索字符串,[统计替换次数$num]) 前两个参数也可为数组,两个数组元素个数相同
7.str_repeat($str,num);//重复$str字符串 num次,
返回值为数字类的
1.
strpos($str,"@");//返回@【第一次出现的位置】
2.strrpos($str,"@");//返回@【最后一次出现的位置】
3.str_word_count($str[,0/1/2]);
//返回$str中
单词的数量[0指返回次数,默认值/1指以数组形式返回单词值/2指返回关联数组,k为单词首字母下标,v单词值]
4.strcmp($str1,$str2);//按ASCII码比较
str1>str2 则返回1 相等返回0 <返回-1 strcasecmp不区分大小写的比较
5.strnatcmp($str1,$str2);//按自然数的排序比较,上边的比较10<2;本函数比较10>2,按自然数大小来的
strcasecmp($str1,$str2);strnatcasecmp//以上4个函数,$str1,$str2比较,【返回值:相等0,小于-1,大于1】
6.
number_format(10000[,2]); //==》10,000.00 把第一个参数格式化,保留2位小数
文本处理类
1.strtoupper($str)//字母全转为大写【返回全大写字符串】
2.strtolower()//字母全转为小写【返回全小写字符串】
3.strtotime('2015-10-10 10:10:10');//指定时间转换为时间戳【返回时间戳】
4.
str_pad($str,length,[---,STR_PAD_BOTH]); //在$str的两边填补“---“,注意,length若小于$str长度,不填补
5.trim($str[,"a",STR_PAD_BOTH])//
去除两边/左/右的空白或"a",默认是空白,或自定义字符
6.floatval("123.45aa")//=》获取变量的浮点值【123.45】
7.ucfirst()//整个$str首字母大写
8.ucword()//$str每个单词首字母大写
HTML类处理
1.
htmlspecialchars($str)//
函数把预定义的字符转换为 HTML 实体