php快速处理数组每个元素

    利用四个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); //可以改变原数组 } });

    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;
	    });	
	}


你可能感兴趣的:(php)