比较 PHP 多维数组中的值
Comparing values in PHP multi-dimensional array
已解决:答案中的解决方案。
我正在构建一个电子商务网页,但我在使用购物车时遇到了问题。我的问题是当用户将一件商品添加到购物车然后决定再次添加相同的商品时,我不确定如何检查购物车中商品的数量是否超过了我的库存商品数量,在 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)
并且支票需要使用当前购物车中该商品的数量、我要添加到购物车的该商品的数量以及我留在库存中的该商品的数量。
经过大量猜测,我想通了。我对这个问题想得太多了。答案如下:
if($eachItem['quantity'] + $itemQuantity > $quantity)
已解决:答案中的解决方案。
我正在构建一个电子商务网页,但我在使用购物车时遇到了问题。我的问题是当用户将一件商品添加到购物车然后决定再次添加相同的商品时,我不确定如何检查购物车中商品的数量是否超过了我的库存商品数量,在 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)
并且支票需要使用当前购物车中该商品的数量、我要添加到购物车的该商品的数量以及我留在库存中的该商品的数量。
经过大量猜测,我想通了。我对这个问题想得太多了。答案如下:
if($eachItem['quantity'] + $itemQuantity > $quantity)