0

我正在使用表单在 Session 中创建多个数组。每次提交表单时,都会生成一个包含每个新数组的新 $_SESSION['item'][]。代码:

$newitem = array (
    'id' => $row_getshoppingcart['id'] ,
    'icon' => $row_getimages['icon'],
    'title' => $row_getimages['title'],
    'medium' => $row_getshoppingcart['medium'],
    'size' => $row_getshoppingcart['size'],
    'price' => $row_getshoppingcart['price'],
    'shipping' => $row_getshoppingcart['shipping']);

$_SESSION['item'][] = $newitem;

根据用户提交表单的次数,可以有任意数量的项目数组。任何想法如何获取在会话变量中代替 [] 的数组键的值?我正在尝试创建从购物车中删除的选项,但无法弄清楚如何在会话中引用该特定数组以取消设置它。

我目前正在显示这些项目:

<?php foreach ( $_SESSION['item'] AS $item )
echo $item['title'];
echo $item['icon'];

等等...

提前感谢您的宝贵时间。对此,我真的非常感激。

4

3 回答 3

1

只需在你的 foreach 中指定一个索引名称

foreach ($_SESSION['item'] as $idx => $item) {
    var_dump($item);
    var_dump($_SESSION['item'][$idx]);
}

var_dumps 将是相同的。

于 2012-12-06T22:59:38.170 回答
1

foreach($_SESSION['item'] as $key => $value)将使您能够将键和值分开,当然,还可以访问当前键所具有的值。

用一个例子来扩展它,考虑下面的代码:

<?php
$exArray = array("foo"=>"bar", "foo2"=>"bar2);

foreach($exArray as $arrKey => $arrValue):
    echo "The key ".$arrKey." has the value of ".$arrValue."<br />\n";
endforeach;
?>

将输出:

The key foo has the value of bar.

The key foo2 has the value of bar2.

但是,以同样的方式,如果已知 $arrValue 变量包含一个数组,它将保留它的内容。要遍历第二个数组,您需要遍历另一个 foreach 语句。

于 2012-12-06T23:04:04.180 回答
0
$var = array_keys($arr);
$count = count($var);
$lastKey = $var[$count - 1];

那对你有用吗?

于 2012-12-06T23:00:43.880 回答