PHP从多维数组中获取值

时间:2016-10-05 03:03:02

标签: php arrays session multidimensional-array

我有一个多维数组,我可以通过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"];}

无论行项目编号如何,我都需要帮助理解这一点以及循环遍历数组的方法。我无法知道购物车中有多少物品或者多少物品。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

您可以使用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"];
    }