Обновление многомерных массивов php на основе ключей

У меня есть два массива inventoryStock и posStock (запасы в точках продаж), они оба используют номера sku продукта в качестве ключа, а значение — это количество в наличии, которое мне нужно, чтобы каким-то образом обновить posStock значениями из $ inventoryStock, где совпадают ключи.

Примеры массивов:

inventoryStock{
abs-0098 => 5,
abs-0099 => 23,
abs-0100 => 8,
abs-0101 => 19
}

posStock{
abs-0098 => 5,
abs-0099 => 23,
abs-0101 => 15
}

Мне нужно, чтобы товар был таким же, как инвентарь. Я не могу просто сделать товар запасом, потому что в запасе есть дополнительные товары, не перечисленные в торговой точке.

-1

Решение

Вы ищете функцию array_key_exists () PHP.

foreach ($inventoryStock as $key => $value) {
if (array_key_exists($key, $posStock)) {
$posStock[$key] = $value;
continue; // Continue Loop
}
// Do something if the array key doesn't exist.
}

Чтобы расширить, почему я сделал бы это таким образом. Теперь у меня есть логический блок, позволяющий мне что-то делать, если ключ массива не существует, например, добавить его в PosStock или если я хочу или изменить значения других переменных, чтобы вызвать другое поведение.

1

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

Ты можешь использовать объединение массивов.

Оператор + возвращает правый массив, добавленный к левому массиву; для ключей, которые существуют в обоих массивах, будут использоваться элементы из левого массива, а соответствующие элементы из правого массива будут игнорироваться.

В вашем случае (если я правильно понимаю спецификацию):

$newPOSStock = $inventoryStock + $posStock;
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector