У меня есть 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
Что я должен делать
использование 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;
}
}
Другой способ выполнить то, что вы ищете, это использовать 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