核心函数: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 ) */