array函数

很多array函数是为了序列数组准备的,并未考虑到关联数组,麻烦。

array_map,不能直接修改key值,但可以合并数组并转为序列数组:

//合并,输出序列数组
array_map(null,array_keys($arr),$arr);
array_map(function($k,$v){},array_keys($arr),$arr);

array_walk,不返回数组,直接修改val,也不建议修改key,注意&$v, 

array_walk($arr,function(&$v,$k){});

array_filter,根据val过滤,甚至不能获得key值

array_filter($arr,function($v){});

过滤特定key,可以使用array_diff_key,返回不同key的项

$arr = [ 'k1' => 1, 'k2' => 2, 'k3' => 3, 'k4' => 4];
$filterOutKeys = [ 'k1', 'k4' ];

$filteredArr = array_diff_key( $arr, array_flip( $filterOutKeys ) )

array_column, 根据单个key,返回数组,可添加key2返回一个序列数组

 array_column($arr,$k)
 array_column($arr,$k,$k2) // k2=>k
原文地址:https://www.cnblogs.com/mitang/p/5148514.html