首页 > 解决方案 > PHP foreach数组检查库存是否大于

问题描述

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

问题是我使用 SESSION 从购物车中的一件物品中有 15 个数量。如果一件商品的 15 个数量大于 10 个库存,则总库存为 10 个,则显示“请求的数量不可用”,因此不要表单提交。但是我从一件小于等于 10 个库存的物品中更改了 10 个数量的值。显示“您的订单已下达。”</p>

$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

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

标签: phpsessionproductcart

解决方案


可能这也可以帮助您:

$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

推荐阅读