<?php
$arr = array('b' => ['c' => ' d ']);
//利用四个php系统函数快速处理数组的每个元素:
//
// array_map(); 返回用户自定义函数作用后的数组
// array_walk(); 对数组中的每个元素应用回调函数。
// array_filter(); 用回调函数过滤数组中的元素
// array_reduce(); 用回调函数迭代地将数组简化为单一的值
/*
总结:array_map() 和array_walk() 区别
1.array_map() 注重结果 array_walk() 注重过程
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) . '<br/>'; //输出数组的值
$v = trim($v); //可以改变原数组
}
});
// array_filter() 过滤数组中所有的偶数 返回被过滤后的数组
$a = array_filter($arr2, function ($v) {
if ($v % 2 == 0) {
return false;
} else {
return true;
}
});
// array_reduce() 返回一维数组的和 如果有的三个参数,则第三个参数将作为运算的的第一个元素
$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;
});
}
来源:https://blog.csdn.net/sinat_22319877/article/details/48518393
相关文章