Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_Multidimensional Array_Grouping - Fatal编程技术网

Php 合并/分组多维数组

Php 合并/分组多维数组,php,arrays,multidimensional-array,grouping,Php,Arrays,Multidimensional Array,Grouping,我目前有两个数组,看起来像这样,我一直在尝试分组/合并,但没有运气 $array1 Array ( [1] => Array ( [options] => 1 [barcode] => [supplier] => 10 [topcat] => Fibre,1 [cat] => Acrylic,1

我目前有两个数组,看起来像这样,我一直在尝试分组/合并,但没有运气

$array1

Array
(
    [1] => Array
        (
            [options] => 1
            [barcode] => 
            [supplier] => 10
            [topcat] => Fibre,1
            [cat] => Acrylic,1
            [range] => Clearance Chenille,14
            [colour] => 
            [type] => Ball
            [option] => Array
                (
                    [1] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                        )

                )

        )

    [2] => Array
        (
            [options] => 1
            [barcode] => 
            [supplier] => 10
            [topcat] => Fibre,1
            [cat] => Acrylic,1
            [range] => Clearance Chenille,14
            [colour] => 
            [type] => Ball
            [option] => Array
                (
                    [1] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                        )

                    [2] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                        )

                )

        )

)
$array2

Array
(
    [1] => Array
        (
            [1] => Array
                (
                    [0] => Array
                        (
                            [name] => 500aqua.jpg
                            [type] => image/jpeg
                            [tmp_name] => C:\xampp\tmp\php6C70.tmp
                            [error] => 0
                            [size] => 133659
                        )

                )

        )

    [2] => Array
        (
            [1] => Array
                (
                    [0] => Array
                        (
                            [name] => 500beige.jpg
                            [type] => image/jpeg
                            [tmp_name] => C:\xampp\tmp\php6C71.tmp
                            [error] => 0
                            [size] => 148940
                        )

                    [1] => Array
                        (
                            [name] => 500beige-zoom.jpg
                            [type] => image/jpeg
                            [tmp_name] => C:\xampp\tmp\php6C72.tmp
                            [error] => 0
                            [size] => 211420
                        )

                )

            [2] => Array
                (
                    [0] => Array
                        (
                            [name] => 500beige.jpg
                            [type] => image/jpeg
                            [tmp_name] => C:\xampp\tmp\php6C83.tmp
                            [error] => 0
                            [size] => 148940
                        )

                    [1] => Array
                        (
                            [name] => 500beige-zoom.jpg
                            [type] => image/jpeg
                            [tmp_name] => C:\xampp\tmp\php6C84.tmp
                            [error] => 0
                            [size] => 211420
                        )

                )

        )

)
我一直在尝试这样合并它们:

Array
(
    [1] => Array
        (
            [options] => 1
            [barcode] => 
            [supplier] => 10
            [topcat] => Fibre,1
            [cat] => Acrylic,1
            [range] => Clearance Chenille,14
            [colour] => 
            [type] => Ball
            [option] => Array
                (
                    [1] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                            [files] => Array
                                (
                                    [0] => Array
                                        (
                                            [name] => 500aqua.jpg
                                            [type] => image/jpeg
                                            [tmp_name] => C:\xampp\tmp\php6C70.tmp
                                            [error] => 0
                                            [size] => 133659
                                        )
                                )
                        )
                )
        )
    [2] => Array
        (
            [options] => 1
            [barcode] => 
            [supplier] => 10
            [topcat] => Fibre,1
            [cat] => Acrylic,1
            [range] => Clearance Chenille,14
            [colour] => 
            [type] => Ball
            [option] => Array
                (
                    [1] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                            [files] => Array
                                (
                                    [0] => Array
                                        (
                                            [name] => 500beige.jpg
                                            [type] => image/jpeg
                                            [tmp_name] => C:\xampp\tmp\php6C71.tmp
                                            [error] => 0
                                            [size] => 148940
                                        )
                                    [1] => Array
                                        (
                                            [name] => 500beige-zoom.jpg
                                            [type] => image/jpeg
                                            [tmp_name] => C:\xampp\tmp\php6C72.tmp
                                            [error] => 0
                                            [size] => 211420
                                        )
                                )
                        )
                    [2] => Array
                        (
                            [type] => Ball
                            [barcode] => 
                            [length] => 
                            [wpi] => 
                            [dyeable] => 
                            [feltable] => 
                            [sold_weight] => 
                            [gauge] => 
                            [price] => 
                            [pack_qty] => 
                            [shipping_weight] => 
                            [cost_price] => 
                            [files] => Array
                                (
                                    [0] => Array
                                        (
                                            [name] => 500beige.jpg
                                            [type] => image/jpeg
                                            [tmp_name] => C:\xampp\tmp\php6C83.tmp
                                            [error] => 0
                                            [size] => 148940
                                        )
                                    [1] => Array
                                        (
                                            [name] => 500beige-zoom.jpg
                                            [type] => image/jpeg
                                            [tmp_name] => C:\xampp\tmp\php6C84.tmp
                                            [error] => 0
                                            [size] => 211420
                                        )
                                )
                        )
                )
        )
)
目前正在获取:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [type] => Ball
                    [barcode] => 
                    [length] => 
                    [wpi] => 
                    [dyeable] => 
                    [feltable] => 
                    [sold_weight] => 
                    [gauge] => 
                    [price] => 
                    [pack_qty] => 
                    [shipping_weight] => 
                    [cost_price] => 
                )

            [files] => Array
                (
                    [1] => Array
                        (
                            [0] => Array
                                (
                                    [name] => 500aqua.jpg
                                    [type] => image/jpeg
                                    [tmp_name] => C:\xampp\tmp\php1534.tmp
                                    [error] => 0
                                    [size] => 133659
                                )

                        )

                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [type] => Ball
                    [barcode] => 
                    [length] => 
                    [wpi] => 
                    [dyeable] => 
                    [feltable] => 
                    [sold_weight] => 
                    [gauge] => 
                    [price] => 
                    [pack_qty] => 
                    [shipping_weight] => 
                    [cost_price] => 
                )

            [1] => Array
                (
                    [type] => Ball
                    [barcode] => 
                    [length] => 
                    [wpi] => 
                    [dyeable] => 
                    [feltable] => 
                    [sold_weight] => 
                    [gauge] => 
                    [price] => 
                    [pack_qty] => 
                    [shipping_weight] => 
                    [cost_price] => 
                )

            [files] => Array
                (
                    [1] => Array
                        (
                            [0] => Array
                                (
                                    [name] => 500beige.jpg
                                    [type] => image/jpeg
                                    [tmp_name] => C:\xampp\tmp\php1535.tmp
                                    [error] => 0
                                    [size] => 148940
                                )

                            [1] => Array
                                (
                                    [name] => 500beige-zoom.jpg
                                    [type] => image/jpeg
                                    [tmp_name] => C:\xampp\tmp\php1545.tmp
                                    [error] => 0
                                    [size] => 211420
                                )

                        )

                    [2] => Array
                        (
                            [0] => Array
                                (
                                    [name] => 500beige.jpg
                                    [type] => image/jpeg
                                    [tmp_name] => C:\xampp\tmp\php1546.tmp
                                    [error] => 0
                                    [size] => 148940
                                )

                            [1] => Array
                                (
                                    [name] => 500beige-zoom.jpg
                                    [type] => image/jpeg
                                    [tmp_name] => C:\xampp\tmp\php1547.tmp
                                    [error] => 0
                                    [size] => 211420
                                )

                        )

                )

        )

)
到目前为止,我所尝试的:

$group = array();
foreach($array1 as $key1 => $val1){
    $group[] = array_merge($val1, array("files" => $array2[$key1]));
}
我还没有测试它(大约一个小时后我可能会有一些时间),但我认为这可能会有所帮助:

foreach($array1 as $key => $val){
   foreach($val['option'] as $k_inner => $v_inner){
      $array1[$key]['option'][$k_inner]['files'] = $array2[$key][$k_inner];
   }
}
您将使用array2作为
$group
数组。一旦我测试它,我就会编辑它


编辑:修正算法。错误在于我混淆了$array1和$array2,而且我没有考虑正确的深度和键。

See:你能给出一个简单的输入/输出示例,说明为什么array\u merge($array1,$array2)不起作用吗?是的,更新了OP以显示我当前拥有的。你能给我发送阵列以便我进行测试吗?sikian@gmail。COM阵列是使用POST参数创建的。您可以使用转换
打印\r
数组哦,谢谢!只是学到了一些东西。好吧,让我们尝试一些解决方案。好吧,它似乎现在起作用了。我已经更新了我的解决方案,它们正在为我正确运行。顺便说一句,你发给我的数组在深度上有一些小错误。谢谢你,当数组中有一部分需要合并时,它会工作,但当它试图合并2部分时,它会中断。