从两个数组创建多维数组

时间:2019-03-04 14:53:56

标签: php arrays loops

我有以下2个数组:

 Array 1
(
    [0] => Speed
    [1] => Grade
    [2] => Speed
    [3] => Grade
    [4] => Speed
    [5] => Grade
    [6] => Grade
    [7] => Speed
    [8] => Size
)

Array 2
(
    [0] => 5200 rpm
    [1] => Red
    [2] => 7200 rpm
    [3] => Blue
    [4] => 8900 rpm
    [5] => Green
    [6] => Purple
    [7] => 10000 rpm
    [8] => Big
)

这些值彼此匹配。例如:速度-5200 rpm 坡度-红色等。

我需要像下面这样:

$collection = array( 

        "Speed" => array (
           5200 rpm,
           7200 rpm,    
           8900 rpm,
           10000 rpm
        ),

        "Grade" => array (
           Red,
           Blue,
           Green,
           Purple
        ),

        "Size" => array (
           Big
        )
     );

它需要为每个标签创建一个数组,并将必要的值存储到该数组中。我已经尝试过合并,合并和循环。我在某个地方出错。

有人可以帮我吗?

3 个答案:

答案 0 :(得分:1)

尝试此代码

$array_1 = array('Speed','Grade','Speed','Grade','Speed','Grade','Grade','Speed','Size');
$array_2 = array('5200 rpm','Red','7200 rpm','Blue','8900 rpm','Green','Purple','10000 rpm','Big');

foreach($array_1 as $key=>$elm){
    $finalArray[$elm][] = $array_2[$key];
}

echo("<pre>");
print_r($finalArray);
echo("</pre>");

使用foreach,您可以使用标签创建多维的新数组!很简单。 希望我能为您提供帮助,如有任何疑问,请发表评论

答案 1 :(得分:0)

将数组1保存为$description,将数组2保存为$value

您需要使用以下方法获取两个数组的数组值:

$description = array_values($description);

然后您可以使用array_combine。

$combined = array_combine($description, $value);

相关(用于数组值)Convert an associative array to a simple array of its values in php

array_combine here的PHP文档。

答案 2 :(得分:-1)

编辑

我再次阅读了问题,发现数组1和数组2的索引相同

$collection = array();
foreach (array1 as $key => $value){
    $collection[$value][] = $array2[$key];
}