Как сделать массив из разницы между двумя массивами? - PullRequest
0 голосов
/ 03 февраля 2019

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

МОЙ МУЗЫКАЛЬНЫЙ МАРШРУТИЗАТОР:

print_r ($ qty);

Array ( [0] => Array ( [stock] => 100 ) [1] => Array ( [stock] => 100 ) [2] => Array ( [stock] => 50 ) [3] => Array ( [stock] => 100 ) )

и

ВЫВОД МОИХ ДЕТЕЙ:

print_r ($ _SESSION ['productqty']);

Array ( [0] => 10 [1] => 12 [2] => 14 [3] => 16 )

Я хочу создать массив, который будет выглядеть как

Array ( [0] => 90 [1] => 88 [2] => 36 [3] => 84 )

Этот массив представляет собой разницу между двумя массивами, и он будет обновлен в запросе MYSQLI ..Я все перепробовал.Пожалуйста, помогите мне ...

1 Ответ

0 голосов
/ 03 февраля 2019

Если индексы равны, следующий код может работать:

$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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...