【问题标题】:PHP foreach array check if stock greater thanPHP foreach数组检查库存是否大于
【发布时间】:2020-08-07 07:59:24
【问题描述】:

尝试检查库存是否大于。当所有不同的项目大于 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

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

【问题讨论】:

    标签: php session product cart


    【解决方案1】:

    也许这对你也有帮助:

    $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
    

    【讨论】:

    • 还有一个没有提到的箱子来处理,我在考虑要一个数量为0和15的篮子?
    • 我们需要15个数量的案例吗?
    • 我说的不是变量 $array1、$array2、$array3。我不这么认为你可能弄错了。
    • @klediooo,我的意思是数量 > 10 且数量 = 0 的案例
    • @AdilRaza ,这是一个确保在所有情况下都有效的数据集。
    【解决方案2】:
    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。

    就像一个想法:您也可以使用布尔值,如果一切正常,则处理订单,如果没有给出某些错误消息。取决于您接下来的步骤。

    【讨论】:

      猜你喜欢
      • 2020-08-06
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      相关资源
      最近更新 更多