PHP从多维数组中获取值
我有一个多维数组,可以使用FOR循环遍历该数组,并返回要输入数据库的值。 当用户删除一个项目,然后我使用unset从$\u SESSION[cart]数组中取出该项目时,就会出现问题。特别是如果它是购物车中的第2行,我会使用它PHP从多维数组中获取值,php,arrays,session,multidimensional-array,Php,Arrays,Session,Multidimensional Array,我有一个多维数组,可以使用FOR循环遍历该数组,并返回要输入数据库的值。 当用户删除一个项目,然后我使用unset从$\u SESSION[cart]数组中取出该项目时,就会出现问题。特别是如果它是购物车中的第2行,我会使用它 unset($_SESSION[cart][2]); 现在我不能再使用FOR循环,因为我在FOR循环中使用的值中有间隙 原始阵列将是: $\u会话['cart'][1] $\u会话['cart'][2] $\u会话['cart'][3] 从购物车中删除行2后(可以是任何
unset($_SESSION[cart][2]);
现在我不能再使用FOR循环,因为我在FOR循环中使用的值中有间隙
原始阵列将是:
$\u会话['cart'][1]
$\u会话['cart'][2]
$\u会话['cart'][3]
从购物车中删除行2后(可以是任何行,这是一个示例):
$\u会话['cart'][1]
$\u会话['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"];}
for($i=1,$howmount=count($\u SESSION['cart']);$i<$howmount+1;){
$stk_code=$_会话['cart'][$i][“stockNumber”];
$description=$\会话['cart'][$i][“description”];
$unitPrice=$_会话['cart'][$i][“主价格”];}
我需要帮助理解这一点,以及一种不考虑行项目编号而在数组中循环的方法。我无法知道有多少物品将在购物车或多少他们采取了。任何帮助都将不胜感激
您可以使用foreach而不是for循环
foreach
可能。删除后,如果您将$\u会话['cart']数组设置为$\u值($\u会话['cart']),然后尝试。。。。它将重新索引您的数组。。
$_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"];
}