I am terrible with manipulating arrays...given this structure I want to remove the top level array and merge all subsets into one flat array:
Array
(
[0]
$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
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);