PHP会话记录只返回一条记录

时间:2017-12-16 15:39:36

标签: php session output record

我有会话$_SESSION["cart_array"]的多条记录,如

$_SESSION["cart_array"] = array(0 => array("item_id" => sms, "quantity" => $pe, "to" =>$to, "msg" => $message));

请见https://ideone.com/NZysQc

在我的成就中,我试图在不同的页面中输出此记录,但它只输出一条记录。我做错了什么?这是我尝试过的代码:

foreach ($_SESSION["cart_array"] as $each_item) {
    $id = $each_item['item_id'];
    $to = $each_item['to'];
    echo '$to and $id';
}

但它在会话中只返回一条记录。

3 个答案:

答案 0 :(得分:1)

我的建议如下: -

$_SESSION["cart_array"][] = array("item_id" => $sms, "quantity" => $pe, "to" => $to, "msg" => $message);

形成数组和

foreach ($_SESSION["cart_array"] as $each_item) {
    $id = $each_item['item_id'];
    $to = $each_item['to'];
    echo "$to and $id";
}

对于循环,请注意echo中的双引号。

答案 1 :(得分:0)

更改

echo '$to and $id';

有关:

echo "$to and $id";

由于vars未在简单的引用字符串中解析。

您的示例只有元素0,因此只显示一个元素。

你可以array_push你的元素推车会话var有多个元素。只有在未设置var的情况下才将其设置为新数组。

$newItem = array("item_id" => sms, "quantity" => $pe, "to" =>$to, "msg" => $message);
if (empty($_SESSION["cart_array"]))
    $_SESSION["cart_array"] = array(0 => $newItem);
else
    array_push($_SESSION["cart_array"], $newItem);

答案 2 :(得分:-1)

$_SESSION["cart_array"] = array(0 => array("item_id" => sms, "quantity" => $pe, "to" =>$to, "msg" => $message),1 => array("item_id" => sms, "quantity" => $pe, "to" =>$to, "msg" => $message));

foreach($_SESSION["cart_array"] as $each_item_array) { foreach ($each_item_array as $each_item) { $id = $each_item['item_id']; $to = $each_item['to']; echo "$to and $id </br>"; } }