Объединение двух массивов php (или более) в одну таблицу

У меня есть 2 массива:

массив 1 содержит 2 продукта.

[records] => Array
(
[0] => Array
(
[productID] => 3347
[amountInStock] => 2.000000
)

[1] => Array
(
[productID] => 6798
[amountInStock] => 1.000000
)
)

массив 2 содержит 3 продукта. один продукт в массиве один также

[records] => Array
(
[0] => Array
(
[productID] => 3347
[amountInStock] => 0
)

[1] => Array
(
[productID] => 6332
[amountInStock] => 1.000000
)
[2] => Array
(
[productID] => 6922
[amountInStock] => 3.000000
)
)

Теперь мне нужно объединить 2 массива в таблицу, как это

product | array 1   |  array 2

3347      2            0
6798      1            0
6332      0            0
6922      0            2

Что я должен делать

0

Решение

использование foreach и добавить элементы в новый массив.

$new = [];

foreach ($array1 as $element) {
if (isset($new[$element['productID']])) {
$new[$element['productID']]['array 1'] = $element['ammountInStock'];
} else {
$new[$element['productID']]['array 1'] = $element['ammountInStock'];
$new[$element['productID']]['array 2'] = 0;
}
}

foreach ($array1 as $element) {
if (isset($new[$element['productID']])) {
$new[$element['productID']]['array 2'] = $element['ammountInStock'];
} else {
$new[$element['productID']]['array 2'] = $element['ammountInStock'];
$new[$element['productID']]['array 1'] = 0;
}
}
1

Другие решения

Другой способ выполнить то, что вы ищете, это использовать array_merge ().

<?php
$arr1 = array(
array('productID' => 3347,
'amountInStock' => 2.000000
),
array('productID' => 6798,
'amountInStock' => 1.000000
)
);

$arr2 = array(
array('productID' => 6332,
'amountInStock' => 3.000000
),
array('productID' => 6330,
'amountInStock' => 4.000000
)
);

$arr = array_merge($arr1, $arr2);

var_dump($arr);
?>

Демо-версия: https://eval.in/205237

РЕДАКТИРОВАТЬ:
Если вы хотите предотвратить повторяющиеся записи, попробуйте использовать array_unique () также.

Демо-версия: https://eval.in/205238

1

По вопросам рекламы [email protected]