$flat = call_user_func_array('array_merge', $arr);
That will flatten the array by exactly one level. It will take the sample input you provided, and produce the desired output you asked for.
Make sure
- your parent array uses numeric indexes
- the parent array has at least one child element, otherwise you'll get a php error due to
array_merge
complaining of no arguments.
For those who wonder how it works:
// with
$arr = [ [1,2,3], [4,5,6] ];
// call_user_func_array('array_merge', $arr) is like calling
array_merge($arr[0], $arr[1]);
// and with
$arr = [ [1,2,3], [4,5,6], [7,8,9] ];
// then it's like:
array_merge($arr[0], $arr[1], $arr[2]);
// and so on...
If you're using php 5.6+, the splat operator (...
) can be more readable way of doing this:
$flat = array_merge(...$arr);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…