PHP foreach 数组检查库存是否大于

PHP foreach array check if stock greater than

正在尝试检查库存是否大于。当所有不同的商品都大于 10 个库存时,我想显示一些文本“请求的数量不可用”而不是表单提交。这可能吗?

问题是我使用 SESSION 从购物车中的一件商品中获得了 15 件商品。如果一件商品的数量 15 大于库存 10,则库存总数为 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

=如果不提交,则显示“部分产品缺货”。

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。

只是一个想法:你也可以使用一个布尔值,如果一切正常然后处理订单,如果没有给出特定的错误信息。取决于您接下来的步骤。

也许这对您也有帮助:

$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