php常见的数组

数组函数:

一.排序类:【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"的,表示要丢到回调函数中处理的

二.键值操作类:【都有返回值,没有在原来参数上修改】

1.array_values($arr);//获取$arr 中的值重排,去掉下标【返回值新索引数组】

2.array_keys($arr[,"str",true])//获取$arr 中所有字符是"str"的下标,形成索引数组,true 表示区分大小写【返回新索引数组】

3.array_search("is",$arr[,true]) //返回值"is"在$arr 中的key,找不到返回fales,true

表示严格按照类型(8,"8")【返回第一个匹配值】

4.in_array("str",$arr);//判断"str"在$arr 中是否存在,【返回BOOL】

5.is_array($arr);//判断是否是数组【返回BOOL】

6.array_key_exists($key,$arr); //查询$arr 中是否有$key,【返回BOOL】

7.array_flip($arr);// 交换键值,如有重复,后来居上,【返回新数组】

8.array_reverse($arr,[true|false]);//数组顺序反转,param2 是否保留原来键值【返回新关联/索引数组】

9.array_column(array(),'name'[,name_two]) — 返回数组中指定的name 列[可选参数,如果有返回name=>name_two 的形式]【返回一维数组】

三.元素个数和唯一性

1.array_unique($arr);//去掉$arr 中的重复值,重复的保留第一个值,【返回数组,键值保留】

2.array_count_values($arr)//统计数组值出现的次数,【返回数组,KEY 为原来数组的值,VALUE 为统计的次数】

3.count($arr[,1])/sizeof();//统计$arr 的元素个数,参数"1"表示统计多维数组开启,默认0为关闭【返回统计个数】

四.回调函数

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,....);//把所有数组返回到回调函数统一处理,【返回数组】

4.array_reduce($arr,myfunction[,initial]):把一维数组$arr 中的值依次传到自定义函数

myfunction($v1,$v2)的v2 上,v1 为累加值类似于( .= ),[如果有initial,先把其当v1 传进去]【返回字符串】

五.拆分,合并,分解,接合数组

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...);//数组进行合并,保留键值,有重复,后来者居上【返回新数组】
array_merge 发现有key 值相同的,取后者;

$arr1+$arr2 发现有key 值相同的,取前者,第二个重复的值丢弃

5.array_intersect($arr1,$arr2)//返回两个数组的交集,键值不变、

6.array_diff($arr1,$arr2)//返回两数组的差集,返回的值为第一个数组的值,键值不变

7.array_chunk($arr,2)//分割数组,把$arr 按照【2 个为一组】均等分割【返回一个二维数组】

六.数组的数据结构【2.无返回值,传值引用,就直接对原数组进行了修改

1.array_shift($arr)//从开头,删除数组第一个元素

2.array_unshift($arr,"one","two")//从开头,添加元素

3.array_pop($arr)//从结尾,删除数组最后一个元素

4.array_push($arr,"aaa");//从结尾,添加元素

5.current($arr)//返回数组中的当前单元 比如是关联数组是不知道下标,可以输出当前数组的办法解决

6.key($arr)//返回当前指针指向元素的键值

7.next($arr)//当前指针下移

8.pre($arr)//当前指针上移

9.end($arr)//指针指到最后

10.reset($arr)//指针回归到开头

11.unset($arr)//销毁此数组

七.其他

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&

猜你喜欢

转载自blog.csdn.net/zlb_lover/article/details/82454054