PHP将数组添加到特定元素的数组中

时间:2015-01-18 16:17:30

标签: php multidimensional-array array-merge

我试图将2个数组合并为多维数组中的单个数组,其中给定的键值=值

第一个数组如下所示:

Array
(
  [0] => Array
    (
        [id] => 4
        [subcategories] => Array
            (
                [0] => Array
                    (
                        [id] => 5
                        [category_order] => 0
                        [parent_id] => 4
                        [name] => Audio Equipment
                    )

                [1] => Array
                    (
                        [id] => 6
                        [category_order] => 0
                        [parent_id] => 4
                        [name] => Home Entertainment
                    )

                [2] => Array
                    (
                        [id] => 7
                        [category_order] => 0
                        [parent_id] => 4
                        [name] => Photography
                    )

                [3] => Array
                    (
                        [id] => 8
                        [category_order] => 0
                        [parent_id] => 4
                        [name] => Portable Audio
                    )

                [4] => Array
                    (
                        [id] => 9
                        [category_order] => 0
                        [parent_id] => 4
                        [name] => Televisions
                    )

            )

    )

)

和第二个像这样:

Array
(
[0] => Array
    (
        [id] => 10
        [parent_id] => 5
        [name] => Amplifiers & Receivers
    )

[1] => Array
    (
        [id] => 11
        [parent_id] => 5
        [name] => Audio Systems
    )

[2] => Array
    (
        [id] => 12
        [parent_id] => 5
        [name] => Cassette Decks
    )

[3] => Array
    (
        [id] => 13
        [parent_id] => 5
        [name] => CD Players
    )

[4] => Array
    (
        [id] => 14
        [parent_id] => 5
        [name] => Radios
    )

[5] => Array
    (
        [id] => 15
        [parent_id] => 5
        [name] => HiFi Speakers
    )
)

我想要做的是将每个第二个数组添加到第一个多维数组的子数组中,其中第二个数组的parent_id =第一个数组的子类别数组的id,所以它看起来像这样: / p>

array
(
   [0]=> Array
   (
     [id] => 4
      [subcategories] => Array
        (
         [0] => Array
         (
             [id] => 5
             [category_order] => 0
             [parent_id] => 4
             [name] => Audio Equipment
             [subsubcategories] = array 
               (
                [id] => 10
                [parent_id] => 5
                [name] => Amplifiers & Receivers
             )
         )

1 个答案:

答案 0 :(得分:1)

这样的事情应该只是重命名数组名称,因为你没有提供它们。但我认为你会得到这个想法:)主要是你使用foreach循环遍历所有子类别或者你将获得父ID并且可以使用该父ID访问主数组并保存子类别信息那里。

foreach( $sub_array as $item ) {
     $main_array[ category_id ][ $item[ 'parent_id' ] ][ 'subsubcategories' ] = $item;
}