0

次のコードがあるとします。

session_start();

$cart = $_SESSION['cart'];

print_r($_SESSION['cart']);

次に、アクセスしたいものを確認できます。

配列 ( [153c740f526f2fa8aac9e1ddfdce2716] => 配列 ( [deal_id] => 38 [variation_id] => [variation] => [quantity] => 6 [data] =>......

まだまだありますが基本は…

私ができるようにしたいのは、数量を取得して設定することです:

だから私は試しました:

$cart = $_SESSION['cart'];

for ($i = 0 ; $i < count($cart) ; $i ++)
{
    echo "The session variable you want" . $_SESSION['cart'][$i]['deal_id'];
    echo "<br>";

}

しかし、出力がありません。何が間違っていますか?

4

6 に答える 6

3
foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    $_SESSION['cart'][$k]['deal_id'] = 'new id';
}
于 2013-07-24T17:19:39.140 に答える
1

'cart' 内で印刷したばかりのデータによると、配列は数値ではなく連想配列です。

連想配列を反復処理するには、 foreach with$someArray as $key => $val式を使用します

于 2013-07-24T17:19:53.730 に答える
1

カートは順次インデックスによってインデックス付けされていません。そのようにループすることはできません。foreach ループを使用する必要があります。

foreach($_SESSION['cart'] as $index => $value)
  echo "Var = " . $value['deal_id'];

値を設定する場合は、参照によって値をループします

foreach($_SESSION['cart'] as $index => &$value)
{
  echo "Var = " . $value['deal_id'];
  $value['deal_id'] = 'newValue';
}
于 2013-07-24T17:20:42.277 に答える
1

foreachループを使用して物事を単純化します

foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    echo "<br>";
    $_SESSION['cart'][$k] = "new Value";
}
于 2013-07-24T17:22:50.827 に答える
1

ループを使用して配列foreachを反復処理します。$_SESSION

foreach($cart as $k=> $value){

echo "The session variable you want" . $data['deal_id']. "<br>";
$_SESSION['cart'][$k] = "newValueGoesHere"; //setting the new value

}
于 2013-07-24T17:24:08.313 に答える