我有一个多维数组,我可以用FOR循环循环并返回值以进入数据库。当用户删除一个项目时,问题就出现了,然后我使用unset从$_SESSION[cart]数组中取出该项目。特别是如果是购物车的第2行,我会使用
unset($_SESSION[cart][2]);
现在我不能再使用FOR循环了,因为我在FOR循环中使用的值有空格。
原来的数组是:
$_SESSION['cart'][1]
$_SESSION['cart'][2]
$_SESSION['cart'][3]
从购物车中删除第2行后(它可以是任何一行,这是一个例子):
$_SESSION['cart'][1]
$_SESSION['cart'][3]
数组的结构如下:
$_SESSION['cart'][$lineId] = array('stockNumber' => $stockNumber, 'description' => $description, 'masterPrice' => $masterPrice);
$lineId是购物车中的行项
我当前使用以下循环从购物车中检索数据:
for ($i = 1, $howMany = count($_SESSION['cart']); $i < $howMany+1; ) {
$stk_code = $_SESSION['cart'][$i]["stockNumber"];
$description = $_SESSION['cart'][$i]["description"];
$unitPrice = $_SESSION['cart'][$i]["masterPrice"];}
我需要帮助来理解这一点,以及一种循环遍历数组的方法,无论行项编号如何。我无法知道购物车里有多少物品,或者他们取出了多少物品。
可以用foreach代替for循环
$_SESSION['cart'][1] = array('stockNumber' => 1, 'description' => 'test', 'masterPrice' => 115);
foreach ($_SESSION['cart'] as $value) {
$stk_code = $value["stockNumber"];
$description = $value["description"];
$unitPrice = $value["masterPrice"];
}