Если индексы равны, следующий код может работать:
$remaining = [];
// iterate $qty rows and fill $remaining array
foreach($qty as $index => $entry) {
$remaining[] = $entry['stock'] - $_SESSION['productqty'][$index];
}
var_dump($remaining);
РЕДАКТИРОВАТЬ: сохранить обновленный запас в базе данных
Сначала необходимо выбрать идентификаторы продуктовв вашем первом запросе, чтобы вы могли обновить их позже.Этот шаг должен привести к следующему дампу (кроме правильных идентификаторов)
Array (
[0] => Array ( [id] => 12, [stock] => 100 )
[1] => Array ( [id] => 37, [stock] => 100 )
[2] => Array ( [id] => 39, [stock] => 50 )
[3] => Array ( [id] => 50, [stock] => 100 )
)
Теперь вы можете оптимизировать свой расчет, прикрепив идентификаторы продуктов к вашему массиву:
remaining = [];
foreach($qty as $index => $entry) {
$remaining[] = [
'id_product' => $entry['id'],
'stock' => $entry['stock'] - $_SESSION['productqty'][$index]
];
}
Теперь выВы можете хранить ваши обновленные акции:
foreach($remaining as $entry) {
// Perform your SQL-Operation, something like:
// UPDATE products SET stock = $entry['stock'] WHERE id = '$entry['id']
}
Внимание: Пожалуйста, защитите свое приложение от SQL-инъекций.Взгляните на: https://en.wikipedia.org/wiki/SQL_injection