0

セッションで複数の配列を作成するためにフォームを使用しています。フォームが送信されるたびに、それぞれの新しい配列を含む新しい $_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($_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 変数が配列を保持することがわかっている場合は、その内容が保持されます。その 2 番目の配列をループするには、別の foreach ステートメントでループする必要があります。

于 2012-12-06T23:04:04.180 に答える
1

foreach でインデックス名を指定するだけです

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

var_dumps は同じになります。

于 2012-12-06T22:59:38.170 に答える
0
$var = array_keys($arr);
$count = count($var);
$lastKey = $var[$count - 1];

それはあなたのために働きますか?

于 2012-12-06T23:00:43.880 に答える