array_map
2017-07-10 本文已影响58人
itbsl
array_map
array_map - 将回调函数作用到数组中的每一个元素上
说明
array array_map(callable $callback, array $arr1 [, array $...])
array_map()
返回一个数组,该数组包含了arr1中的所有元素被callback(回调函数)处理过之后的元素。callback接受的参数数目应该和传递给array_map()
函数的数组数目一致。
参数
callback
对每个数组的每个元素作用的回调函数。
arr1
将被回调函数(callback)执行的数组。
array
将被回调函数(callback)执行的数组列表。
返回值
返回一个数组,该数组的每个元素都是数组$arr1里面的每个元素经过回调函数(callback)处理了的。
示例
function add2($value) {
return $value + 2;
}
$arr = array(1, 2, 3, 4, 5);
$result = array_map(add2, $arr);
echo '<pre>';
var_dump($result);
结果

如何对数组的每个元素都执行对象方法?
array_map
的第一个参数传入一个数组,数组下标为0的是对象,数组下表为1的是该对象的方法。
$arr = array_values($data);
$result = array_map(array($this->dao, 'quoteValue'), $arr);
上面是把数组arr的每一个元素都执行dao对象的quoteValue方法,最后结果以数组的形式返回。
猜想:貌似数组函数中如果参数是回调函数的话,我们同样可以传入一个对象方法,不过这需要传入一个数组数组下表为0的是该对象,数组下标为1的是该对象的方法。