1、array_map 处理关联数组key value
函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空
array_map ( callable $callback , array $array1 [, array $... ] ) : array
很多情况下,迭代的数据一般为一个 二维关联数组,但 array_map 本身在回调函数的函数体内无法获取到 关联数组的下标key。通过以下方式可以,关键就在于第三个参数的使用。
$arr = [
'a' => 1,
'b' => 2,
'c' => 3
];
$res = array_map(function($item, $key){
echo '$arr[' . $key . ']=' . $item . '<br>';
}, $arr, array_keys($arr));
2、array_reduce
array $array , callable $callback [, mixed $initial = NULL ] ) : mixed
当迭代处理一个一维索引数组时,在回调函数内是无法获取到当时元素索引的。所以想要获取时,需得借助一个外部变量。
目的:把 $arr 遍历到
<select><option></option></select>
标签内(就是拼接option字符串)
$arr = [
0 => '全部',
1 => 'a',
2 => 'b',
3 => 'c',
];
$index = 0;
$options = array_reduce($data, function($carry, $item) use (&$index){
## $index则为当前两个元素 $item 的索引
return $carry . '<option value="' . $index++ . '">' . $item . '</option>';
}, '');
var_dump($options);