I have the following 3 multidimensional arrays:
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
)
And I would like to combine them keeping the keys 'id_produto' and 'categoria' and have something like:
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
)
I tried array_merge($array1,$array2,$array3)
and array_merge_recursive($array1,$array2,$array3)
but it does copy them into an array with 9 elements. The following code worked for me but I'm looking for a faster solution, because I have thousands of ids:
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'];
}
}
}