php快速处理元素数组函数

      发布在:后端技术      评论:0 条评论
<?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

相关文章
热门推荐