我需要打开这个数组:
$data = array(array('a', 'b'), array('1','2'), array('hi','bye'));
进入这一个:
$final = array (array ('a', '1', 'hi'), array ('b','2','bye'));
如何循环$data
以获取$final
?我已经循环了几个小时,我无法得到它。
答案 0 :(得分:5)
您可以使用array_map
以有趣的方式执行此操作:
$data = array(array('a', 'b'), array('1','2'), array('hi','bye'));
array_unshift($data, null); /* or use the array union operator: array(null) + $data */
$result = call_user_func_array('array_map', $data);
print_r($result);
收率:
Array
(
[0] => Array
(
[0] => a
[1] => 1
[2] => hi
)
[1] => Array
(
[0] => b
[1] => 2
[2] => bye
)
)
希望这会有所帮助:)
修改强>
如果您对这里发生的事情的细分感兴趣,我已经写了short blog post here
基本上,如果您将null
作为第一个参数传递给array_map
,则可以向其传递任意数量的数组 - 该函数会为您完成所有旋转。有用!
如果你有一个数组数组(正如你所做的那样),那么你需要call_user_func_array
的一些帮助来解压"解包"数组。