PHP循环数组以获取组合的项目行

时间:2014-03-31 08:42:20

标签: php arrays loops multidimensional-array foreach

我需要打开这个数组:

$data = array(array('a', 'b'), array('1','2'), array('hi','bye'));

进入这一个:

$final = array (array ('a', '1', 'hi'), array ('b','2','bye'));

如何循环$data以获取$final?我已经循环了几个小时,我无法得到它。

1 个答案:

答案 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的一些帮助来解压"解包"数组。