Php不等于阵列组合

时间:2015-01-16 18:15:50

标签: php

我无法理解如何组合这些数组。

$data = array("a", "b", "c")
$array = array(0 => Array(1 , 2, 3), 1 => Array(4, 5, 6))

我尝试了不同的功能,例如合并,合并,地图..

结果必须是:

 array(
    'a' => array(1, 4),
    'b' => array(2, 5),
    'c' => array(3, 6),
    )

2 个答案:

答案 0 :(得分:3)

这应该适合你:

<?php

    $data = array("a", "b", "c");
    $array = array(array(1 , 2, 3), array(4, 5, 6));

    $result = array();

    foreach($data as $key => $value) {
        foreach($array as $innerKey => $innerValue)
            $result[$value][] = $innerValue[$key];
    }

    print_r($result);

?>

输出:

Array (
    [a] => Array ( [0] => 1 [1] => 4 )
    [b] => Array ( [0] => 2 [1] => 5 )
    [c] => Array ( [0] => 3 [1] => 6 )
)

答案 1 :(得分:1)

使用自PHP 5.5以来可用的函数array_column()的解决方案:

$data  = array("a", "b", "c");
$array = array(0 => Array(1 , 2, 3), 1 => Array(4, 5, 6));

$result = array();
foreach($data as $i => $v) {
    $result[$v] = array_column($array, $i);
}

如果您遇到以前的版本,请使用Rizier123's solution(只需更多代码即可完成同样的操作。