比较PHP多维数组中的值

时间:2015-04-11 20:34:32

标签: php multidimensional-array session-variables

已解决:答案中的解决方案。

我正在构建一个电子商务网页,但我遇到了购物车问题。我的问题是当用户将商品添加到购物车然后再决定再添加相同的商品时,我不确定如何检查购物车中商品的数量是否超过我库存的商品数量,这是在mysql数据库中跟踪的。

如果购物车为空或尚未创建,这就是我向其添加商品的方式:

if(!isset($_SESSION['cart']) || count($_SESSION['cart']) < 1) {
  $_SESSION["cart"] = array(0 => array("item_id" => $pid, "quantity" => $itemQuantity));
}

否则,我搜索整个购物车,看看我试图添加的项目是否已经存在,如果是,我更新数量,如果不是,我只需将其推入数组。

else {
  foreach($_SESSION["cart"] as $eachItem) {
    $idx++;
    while(list($key, $value) = each($eachItem)) {
      if($key == "item_id" && $value == $pid) {
        array_splice($_SESSION["cart"], $idx-1, 1, array(array("item_id" => $pid, "quantity" => $eachItem['quantity'] + $itemQuantity)));
        $wasFound = true;
      }
    }
  }
  if($wasFound == false) {
    array_push($_SESSION["cart"], array("item_id" => $pid, "quantity" => $itemQuantity));
  }
}

我已经可以通过mysql_query访问我剩余的物品中有多少:

$sql = mysql_query("SELECT * FROM inventory WHERE id='$pid' LIMIT 1");
while($row = mysql_fetch_array($sql)) {
    $quantity = $row["quantity"];
    $name = $row["name"];
  }

关于如何解决这个问题的任何想法?

我的想法:我几乎肯定我需要完成这项工作的代码将放在这个if语句中 if($key == "item_id" && $value == $pid) 并且支票将需要使用购物车中当前商品的数量,我尝试添加到购物车的商品数量,以及我剩余商品的数量。

1 个答案:

答案 0 :(得分:0)

经过大量的猜测,我发现了它。我非常想过这个问题。这是答案:

if($eachItem['quantity'] + $itemQuantity > $quantity)