Explanation
Take a simple array to explain:
Array(
0 => Array(1, 4, 7),
1 => Array(2, 5, 8),
2 => Array(3, 6, 9),
)
First an array_shift()anonymous function in your array, so your array looks like this:
Array(
0 => function(){...}
1 => Array(1, 4, 7),
2 => Array(2, 5, 8),
3 => Array(3, 6, 9),
)
Then we call call_user_func_array()and apply array_map()as a callback. What this will do basically:
array_map(function(){
}, Array(1, 4, 7), Array(2, 5, 8), Array(3, 6, 9) );
Array(1, 4, 7), Array(2, 5, 8), Array(3, 6, 9)
β β β β β β β β ββ 3 iteration in 'array_map()' | 3 value
β β β β β β β βββββ 2 iteration in 'array_map()' | 3 value
β β β β β β ββββββββ 1 iteration in 'array_map()' | 3 value
β β β β β β
β β β β β ββββββββββββββββββ 3 iteration in 'array_map()' | 2 value
β β β β βββββββββββββββββββββ 2 iteration in 'array_map()' | 2 value
β β β ββββββββββββββββββββββββ 1 iteration in 'array_map()' | 2 value
β β β
β β ββββββββββββββββββββββββββββββββββ 3 iteration in 'array_map()' | 1 value
β βββββββββββββββββββββββββββββββββββββ 2 iteration in 'array_map()' | 1 value
ββββββββββββββββββββββββββββββββββββββββ 1 iteration in 'array_map()' | 1 value
, , , . array_merge() , :
$result = array_merge($result, Array(1, 2, 3)); //First values from each subArray
$result = array_merge($result, Array(4, 5, 6)); //Second values from each subArray
$result = array_merge($result, Array(7, 8, 9)); //Third values from each subArray
//...
<?php
$arr = [];
$result = [];
array_unshift($arr, function(...$values)use(&$result){
$result = array_merge($result, array_filter($values));
});
call_user_func_array("array_map", $arr);
print_r($result);
?>