创建多维数组PHP而不重复

时间:2015-12-02 02:58:41

标签: php arrays multidimensional-array

我正在尝试创建一个多维数组,但我有结果我想要jajaja,这是我的代码。

所有变量都是动态创建的。

foreach ($list_items as $key => $level):
        foreach ($list_songs as $k =>$attribute):
            $variables[$level][$k] = $attribute; // changed $variables[] to $variables[$level][]
            endforeach;
endforeach;

这是为了创建多维我打印时有这个结果:

echo '<pre>' . print_r($list_items,1) . '</pre>';
echo '<pre>' . print_r($list_songs,1) . '</pre>';    
echo '<pre>' . print_r($variables,1) . '</pre>';  

/*THIS IS THE ARRAY $list_items */

Array
(
  [0] => item_name_1
  [1] => item_name_2
)

/*THIS IS THE ARRAY $list_songs*/
Array
(
  [0] => Musica Ligera
  [1] => La chispa adecuada
)

/*THIS IS THE ARRAY $variables*/

Array
(
[item_name_1] => Array
    (
        [0] => Musica Ligera
        [1] => La chispa adecuada
    )

[item_name_2] => Array
    (
        [0] => Musica Ligera
        [1] => La chispa adecuada
    )

 )

我理解这个问题,因为我保存了列表项中每个键中歌曲的所有键,但我不知道如何在结果中解析它:

Array
(
[item_name_1] => Array
    (
        [0] => Musica Ligera
    )

[item_name_2] => Array
    (
        [1] => La chispa adecuada
    )

 )

欢迎所有评论,问候:D

1 个答案:

答案 0 :(得分:0)

我认为在你的情况下两个数组的长度是相同的,所以请改用for循环。

    for( $i = 0; $i < sizeof($list_items); $i++ ){
         $variables[$list_items[$i]][array_keys($list_songs)[$i]] = $list_songs[$i];
    }
    print_r($variables);

输出:

Array
(
    [item_name_1] => Array
        (
            [0] => song1
        )

    [item_name_2] => Array
        (
            [1] => song2
        )

)