PHP массив foreach проверяет, превышает ли запас - PullRequest
0 голосов
/ 07 августа 2020

Пытаюсь проверить, больше ли на складе. Когда количество всех различных элементов превышает 10, я хотел бы отобразить текст «Запрошенное количество недоступно» вместо отправки формы. Возможно ли это?

Проблема в том, что у меня есть 15 кол-во одного товара в корзине при использовании SESSION. Общее количество составляет 10, если количество 15 из одного товара больше, чем запас 10, тогда отображается «запрошенное количество недоступно», поэтому не отправляйте форму. Но я меняю значение 10 шт. С одного товара меньше 10 шт. Показывает «Ваш заказ размещен».

$array = array('0' => array('qty' => 15), '1' => array('qty' => 5), '2' => array('qty' => 1));
foreach ($array as $key => $item) {
    if ($item['qty'] !== 0) {
        if ($item['qty'] <= 10) {
            $it = 'Your order has been successfully processed';
        } else {
            $it = 'The requested qty is not available';
        }
    } else {
        $it = 'Some of products are out of stock';
    }
}
echo $it;

Например (1)

Количество одного товара 10

Два товара 5

Третьи позиции, количество 1

= если возможно, отправить форму (количество меньше, чем в наличии 10), затем отображается «ваш заказ был размещен».

Например (2)

Количество одного элемента 15

Количество двух элементов 5

Количество третьих элементов 1

= если не отправлять форму ( количество больше, чем есть в наличии), затем отображается «запрошенное количество недоступно.

Например (3)

Одно количество 9

Два Кол-во товаров 4

Кол-во третьих товаров 0

= если форма отправки не сформирована, отображается «некоторые товары отсутствуют в наличии».

Ответы [ 2 ]

2 голосов
/ 07 августа 2020

Возможно, это также может вам помочь:

$array1 =Array ('0' => Array('qty'=>10),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));

$array2 =Array ('0' => Array('qty'=>15),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));

$array3 =Array ('0' => Array('qty'=>9),'1'=>Array('qty'=>4),'2'=>Array('qty'=>0));

function handleBasket($items) 
{
    $quantities = array_column($items, 'qty');

    foreach($quantities as $quantity)
    {
        if($quantity >10){
            return 'The requested qty is not available';
        }
        if($quantity ===0){
            return 'Some of products are out of stock';
        }
    }
    
    return 'Your order has been successfully processed';
}

echo handleBasket($array1);
echo handleBasket($array2);
echo handleBasket($array3);

Результат:

Your order has been successfully processed
The requested qty is not available
Some of products are out of stock
1 голос
/ 07 августа 2020
foreach ($array as $key => $item) {
    if($item['qty'] !== 0) {
        if($item['qty'] <= 10)
        {
            $it   =   'Your order has been successfully processed';
        }
        else
        {
            $it   =   'The requested qty is not available';
            break;
        }
    }
    else
    {
        $it   =   'Some of products are out of stock';
        break;
    }

}
echo $it;

Вы можете просто использовать break; , чтобы остановить ваш foreach, если возникнет проблема в порядке.

Как идея: вы также можете использовать логическое значение, если все в порядке, то обработайте заказ, если нет, то выдайте сообщение об ошибке. Зависит от ваших следующих шагов.

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