У меня есть следующие 3 многомерные массивы:PHP Merge Многомерные массивы
Array
(
[0] => Array
(
[id_produto] => 191
[categoria] => 7
[prazo] => 8
[desconto] => 45
)
[1] => Array
(
[id_produto] => 194
[categoria] => 7
[prazo] => 8
[desconto] => 39
)
[2] => Array
(
[id_produto] => 195
[categoria] => 7
[prazo] => 8
[desconto] => 39
)
Array
(
[0] => Array
(
[id_produto] => 191
[categoria] => 7
[pageviews] => 2103
)
[1] => Array
(
[id_produto] => 194
[categoria] => 7
[pageviews] => 2445
)
[2] => Array
(
[id_produto] => 195
[categoria] => 7
[pageviews] => 1560
)
Array
(
[0] => Array
(
[id_produto] => 191
[categoria] => 7
[pedidos] => 3
[valor] => 6501.583023
)
[1] => Array
(
[id_produto] => 194
[categoria] => 7
[pedidos] => 1
[valor] => 2217.968420
)
[2] => Array
(
[id_produto] => 197
[categoria] => 7
[pedidos] => 2
[valor] => 4405.517706
)
И я хотел бы объединить их держать клавиши «id_produto» и «CATEGORIA» и есть что-то вроде:
Array
(
[0] => Array
(
[id_produto] => 191
[categoria] => 7
[prazo] => 8
[desconto] => 45
[pageviews] => 2103
[pedidos] => 3
[valor] => 6501.583023
)
[1] => Array
(
[id_produto] => 194
[categoria] => 7
[prazo] => 8
[desconto] => 39
[pageviews] => 2445
[pedidos] => 1
[valor] => 2217.968420
)
[2] => Array
(
[id_produto] => 195
[categoria] => 7
[prazo] => 8
[desconto] => 39
[pageviews] => 1560
[pedidos] => 2
[valor] => 4405.517706
)
Я пробовал array_merge($array1,$array2,$array3)
и array_merge_recursive($array1,$array2,$array3)
, но он копирует их в массив с 9 элементами. Следующий код работал для меня, но я ищу более быстрое решение, потому что у меня есть тысячи идентификаторов:
foreach($array1 as $arr1=>$a){
foreach($array2 as $arr2=>$b){
if($a['id_produto'] == $b['id_produto']){
$array1[$arr1]['pageviews'] = $b['pageviews'];
}
}
foreach($array3 as $arr3=>$c){
if($a['id_produto'] == $c['id_produto']){
$array1[$arr1]['pedidos'] = $c['pedidos'];
$array1[$arr1]['valor'] = $c['valor'];
}
}
}
Вы точно знаете, что все 3 массивов будут в таком же порядке? Ditto Показать код, который вы пробовали, даже если он не работает! – RiggsFolly
Я отредактировал мой вопрос. Я в основном пытался применить array_merge, как я нашел в других вопросах, но не повезло. Возможно, есть другая функция php, которая может справиться с этим. Одна вещь, которую я могу попробовать, - это прорваться через них, но это мое последнее средство. –
Я могу заказать их, но не гарантировано, что все идентификаторы будут во всех трех массивах. –