PHP从多维数组中获取值

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后(可以是任何

我有一个多维数组,可以使用FOR循环遍历该数组,并返回要输入数据库的值。 当用户删除一个项目,然后我使用unset从$\u SESSION[cart]数组中取出该项目时,就会出现问题。特别是如果它是购物车中的第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"];
    }