У меня есть два массива 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
}
Мне нужно, чтобы товар был таким же, как инвентарь. Я не могу просто сделать товар запасом, потому что в запасе есть дополнительные товары, не перечисленные в торговой точке.
Вы ищете функцию 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 или если я хочу или изменить значения других переменных, чтобы вызвать другое поведение.
Ты можешь использовать объединение массивов.
Оператор + возвращает правый массив, добавленный к левому массиву; для ключей, которые существуют в обоих массивах, будут использоваться элементы из левого массива, а соответствующие элементы из правого массива будут игнорироваться.
В вашем случае (если я правильно понимаю спецификацию):
$newPOSStock = $inventoryStock + $posStock;