array_map将数组中每个元素应用到一个自定义函数,结果保留到一个新的数组中。
/**
* Applies the callback to the elements of the given arrays
* @link https://php.net/manual/en/function.array-map.php
* @param callback $callback <p>
* Callback function to run for each element in each array.
* </p>
* @param array $arr1 <p>
* An array to run through the callback function.
* </p>
* @param array $_ [optional]
* @return array an array containing all the elements of arr1
* after applying the callback function to each one.
* @meta
*/
function array_map($callback, array $arr1, array $_ = null) { }
示例一:将数组中的值平方
$array = [
1, 2, 3, 4, 5
];
$result = array_map(function ($v){
return $v * $v;
}, $array);
var_dump($result);
//结果
//array(5) {
// [0] =>
// int(1)
// [1] =>
// int(4)
// [2] =>
// int(9)
// [3] =>
// int(16)
// [4] =>
// int(25)
//}
示例二:将两个数组对应位置的值乘积的结果保留在新数组中
$array1 = [
1, 2, 3
];
$array2 = [
4, 5, 6
];
$result = array_map(function ($v1, $v2){
return $v1 * $v2;
}, $array1, $array2);
var_dump($result);
//结果
//array(3) {
// [0] =>
// int(4)
// [1] =>
// int(10)
// [2] =>
// int(18)
//}