<?php //用回调函数操作数组 //1.array_filter($array,callback)将数组元素依次传入到回调函数中处理 // 将数组中的值依次逐个传入到回调函数中处理,只有处理结果为true的元素才允许出现在结果数组中 $arr = [1,2,3,4,5,6,7,8,9]; //首先写好两个处理函数 function odd($n){ return $n%2==1; } function even($n){ return $n%2==0; } $newArr = array_filter($arr,'even'); echo '<pre>'; print_r($newArr); // 2.array_walk($array,callback) // 功能:1.遍历数组 2.更新元素 不返回新数组 更多时候是用于使用回掉函数影响到原数组中的值 $arr = ['name'=>'peter','age'=>28,'sex'=>'male']; //遍历数组 function printArr($value,$key){ echo '我的',$key,'是:',$value,'<br>'; } array_walk($arr,'printArr'); //修改数组 function alterArr(&$value,$key,$suffix){ $value.=$suffix; } //在调用回调函数的时候传入第三个参数 array_walk($arr,'alterArr','_Php'); echo '<hr>'; //遍历修改后的数组 array_walk($arr,'printArr'); // 3.array_map(callback,$arr1,$arr2...) // 将回调函数作用到每个数组上,并返回一个新数组:默认索引数组 // 回调函数的参数数量,必须与要处理的数组的数量一致 $arr = [1,2,3,4,5]; //创建一个回调函数 $func = function($value){ return $value*2; }; $newArr = array_map($func,$arr); print_r($newArr); $area = ['北京','天津','南京','深圳','广州']; $func = function($value1,$value2){ return '第'.$value1.'个元素是'.$value2; }; $newArr = array_map($func,$arr,$area); print_r($newArr); ?>
点击 "运行实例" 按钮查看在线实例