核心函数:array_reduce()
array_reduce() 函数用回调函数迭代地将数组简化为单一的值。
如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值。
- 二维数组的键值为数字
$egArray = [
'a' => ['a', 'aa'],
'b' => ['b', 'bb']
];
var_dump($egArray);die;
/* 打印结果 ====================================================
Array
(
[a] => Array
(
[0] => a
[1] => aa
)
[b] => Array
(
[0] => b
[1] => bb
)
)
*/
// 进行处理 ====================================================
var_dump(array_reduce($egArray , 'array_merge', []));
/* 打印结果 ====================================================
Array
(
[0] => a
[1] => aa
[2] => b
[3] => bb
)
*/
- 二维数组的键值为字符串
$egArray = [
'0' => ['aa' => 'aa1', 'aaa' => 'aaa1'],
'1' => ['bb' => 'bb1', 'bbb' => 'bbb1']
];
var_dump($egArray);die;
/* 打印结果 ====================================================
Array
(
[0] => Array
(
[aa] => aa1
[aaa] => aaa1
)
[1] => Array
(
[bb] => bb1
[bbb] => bbb1
)
)
*/
// 进行处理 ====================================================
var_dump(
array_reduce($egArray, function ($result, $value) {
return array_merge($result, array_values($value));
}, [])
);
/* 打印结果 ====================================================
Array
(
[0] => aa1
[1] => aaa1
[2] => bb1
[3] => bbb1
)
*/