利用四个php系统函数快速处理数组的每个元素:
array_map(); 返回用户自定义函数作用后的数组
array_walk(); 对数组中的每个元素应用回调函数。
array_filter(); 用回调函数过滤数组中的元素
array_reduce(); 用回调函数迭代地将数组简化为单一的值
/*
总结:array_map() 和array_walk() 区别
1.array_map() 注重结果 array_map() 注重过程
2.返回值:array_map() 返回数组处理后的数组,array_walk() 返回bollean
3.array_map() 不改变原数组 array_walk()用&引用可以改变原数组
*/
利用array_map() 快速清除一维数组的每个元素两边的空格
array_map('trim',$arr);
自定义函数:快速清除多维维数组的每个元素两边的空格 封装成函数deep_array_map()
function deep_array_map($arr){
return array_map(function(&$v){
if(is_array($v)){
return deep_array_map($v);
}
return trim($v);
},$arr);
}
array_walk() 输出数组的键和值,并且改变原数组 返回bollean
array_walk($arr1,function($v,$k){
if(!is_array($v)){
echo $k.'....'; //输出数组的键
echo trim($v).'
'; //输出数组的值
$v = trim($v); //可以改变原数组
}
});
$a = array_filter($arr2,function($v){
if($v%2==0){
return false;
}else{
return true;
}
});
$arr2 = array('1',false,4,5,6,7,8);
$a = array_reduce($arr2,function($v1,$v2){
return $v1+$v2;
},100);
自定义函数计算多维数组的和
function deep_array_reduce($arr2){
return array_reduce($arr2,function($v1,$v2){
if(is_array($v1)){
$v1 = deep_array_reduce($v1);
}
if(is_array($v2)){
$v2 = deep_array_reduce($v2);
}
return $v1+$v2;
});
}