Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP将数组添加到特定元素的数组中_Php_Multidimensional Array_Array Merge - Fatal编程技术网

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

PHP将数组添加到特定元素的数组中,php,multidimensional-array,array-merge,Php,Multidimensional Array,Array Merge,我试图将两个数组合并为多维数组上的单个数组,其中给定的键值=一个值 第一个数组如下所示: Array ( [0] => Array ( [id] => 4 [subcategories] => Array ( [0] => Array ( [id] => 5

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

第一个数组如下所示:

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
    )
)
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
             )
         )
第二个是这样的:

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
    )
)
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
             )
         )
我要做的是将第二个数组中的每个数组添加到第一个多维数组的子数组中,其中第二个数组的父数组的id=第一个数组的子类别数组的id,因此它将如下所示:

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
    )
)
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
             )
         )

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

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

您好,谢谢您的回复,这肯定只是将$sub_数组项分配给$main_数组位置,而不是父id?main_数组[category_id][0][subcategories]=array()我认为需要某种嵌套循环和一个条件来确定子_数组父_id是否与主_数组category_id匹配?