随着学习深入,普通数组操作已经不能满足我了
发现接触的数组函数越来越多,而且都比较好用
于是专门写下了这一编文章
删除数组某个键值
unset($key);截取字符串
array_slice($arr,5,2); //从第5个元素开始,截取2个元素
判断一维数组是否存在某值
in_array("Mark", $arr)知道键值获取键名
key(键值);分割数组
//将arr数组每10个数据一分割,保存成二维数组 array_chunk($arr,10);过滤一维数组里面的空值
//例如null,,false,' '等等 array_filter($arr);数组出栈入栈
array_pop()删除数组的最后一个元素(出栈)。 array_push($arr, '元素1')将一个或多个元素插入数组的末尾(入栈) array_unshift($arr, '元素2')将一个或多个元素插入数组的开头list()快速获取数组的值
list($a,$b)=[1,2]; 结果:$a=1;$b=2;二维数组排序
//根据字段last_name对数组$data进行降序排列$last_names = array_column($data,'last_name');array_multisort($last_names,SORT_DESC,$data);SORT_ASC 默认升序SORT_DESC降序在数组中取出一段值
$arr = [1,2,3,4];array_slice($arr,1,2);结果:array(2,3);获取一维数组的键或值
//获取一维数组的下标key值array_keys($arr)//获取一维数组的value值array_values($arr)将二维数组变一维数组
第一种方法//限制是PHP版本必须是5.5.0及以上版本!$first_names = array_column($arr, 'name');//取key名为name的值作为一个一维数组第二种方法$names =[];array_walk($arr, function($value, $key) use (&$names){ $names[] = $value['name'];});获取数组的个数
count($arr);判断$arr是否是数组
is_array($arr);分割字符串成数组
//按空格分隔字符串保存成数组explode(" ",$str);合并数组成字符串
$arr=array('l','o','v','e');$str=implode(" ",$arr); //之间加空格合并结果:$str="l o v e";字符串分割成数组
//隔2个字符分割一次,默认是1str_split("abcd", 2);返回array('ab', 'cd'),检查指定的键名是否存在于数组中。
array_key_exists("key",$a)数组追加合并
array_push($a1,$a2 );//a2数组还是以数组形式插入a1$arr=array_merge($a1,$a2);//数组以元素形式插入合并取两数组交集
array_intersect()比较数组,返回交集(只比较键值)。array_intersect_assoc()比较数组,返回交集(比较键名和键值)。array_intersect_key()比较数组,返回交集(只比较键名)。取两数组差集
array_diff()比较数组,返回差集(只比较键值)。array_diff_assoc()比较数组,返回差集(比较键名和键值)。array_diff_key()比较数组,返回差集(只比较键名)。数组去重
(1)array_unique()函数,它会运行地慢一些。
$arr = array_unique($arr);$arr = array_values($arr);//去重后,键值会不按顺序,使用array_values把键值重新排序。(2)array_flip()加array_merge()去重
$array = array('green','blue','orange','blue');/* * 翻转数组,你将会得到唯一键值的数组 * array('green'=>0,'blue'=>1,'orange'=>2); */ $array = array_flip($array);/* * 然后再翻转一次,将键和值重新放置,然后得到数组 * array(0=>'green',1=>'blue',2=>'orange'); */ $array = array_flip($array);/* * 因为我们已经移除了一些元素,因此数组看起来不是正常的序列。 * 使用array_merge()函数修复键值 */ $array = array_merge($array);(3)跟上个例子一样,但是现在我们先提取数组的键值
$array = array_flip($array);$array = array_keys($array); 如果您觉得本篇对你有帮助,可以点关注,给个赞,支持一下,过程有遇到什么问题也欢迎评论私信,进行交流