У меня есть функция оформления заказа в магазине:
$min_delivery = 25;
foreach ($shoppingCartItem as $item) {
$insert->name = $item->name;
$insert->price = $item->price;
$insert->quantity = $item->qty;
$insert->save();
$total += $item->price*$item->qty;
}
Есть ли функция php, которая позволяла бы циклу foreach выполняться только if ($total > $min_delivery)
.
Или единственный способ - сделать foreach
дважды, один раз для вычисления $total
, затем if ($total > $min_delivery)
сделать секунду foreach
для вставки в базу данных.
* РЕДАКТИРОВАТЬ - некоторые подробности о том, почему я хочу использовать другой способ вместо двух циклов:
Проблема в том, что я не могу доверять $item->price
из корзины покупок, потому что он исходит от пользователя (и я не проверяю его до оформления заказа), поэтому мне нужно проверить его по базе данных перед вставкой.
То есть выполнение цикла дважды означало бы запрос базы данных дважды.