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部分时,它会中断。