• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:$_SESSIONに二次元配列を使えるのですか?)

PHP4.3での$_SESSIONの二次元配列の使用方法と参照方法について

このQ&Aのポイント
  • PHP4.3では、$_SESSIONに二次元配列を使用することができます。
  • 具体的な例として、syouhin[12-3][name]='aaa'などの二次元配列がある場合、$_SESSION('s_arry')にキーと値を渡すことができます。
  • また、特定のキーがセッションに設定されているかどうかを判断し、参照することも可能です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$_SESSION変数には配列も保存できます。質問の例ですと $_SESSION = $syouhin; とすると、$syouhin変数の配列自体を$_SESSION変数に保存する事ができます。 この場合次のページで$_SESSION["shouhin"][22-4]などという方法で参照もできますが、わかりづらいのでsession_open関数の後でis_array関数などを使って値を調べ、配列であれば$syouhin = $_SESSION["syouhin"]などとすると解りやすいと思います。

rabu_chihaha
質問者

お礼

ありがとうございます。 二次元配列をセッションに保存することは、 できたようですが、次のページで二次元 配列の全ての値を取得する方法がわからなかったので 別の方法をとりました。 まずは二次元配列の全ての値を取得できるように ならなくては・・・。 まだまだphp道のりは長いです。

その他の回答 (2)

回答No.3

No1です。 >まずは二次元配列の全ての値を取得できるように ならなくては・・・。 二次元配列の全ての値を取得できない、というのはおかしいですね。前のページで$_SESSION変数に入れた値はそのまま次のページに引き継がれるので、それが取得できないのは何かSESSION以外の他に原因があるのでは。 先の回答に書いた $syouhin = $_SESSION["syouhin"] とする事で、前のページで使っていた$syouhin変数そのままの形に戻るはずです。この時期待した値が取れないとしたら、前のページの$_SESSION=$syouhinの手前でvar_dump($syouhin)として、$syouhin変数の中身を確認してみてはどうでしょうか。

rabu_chihaha
質問者

お礼

変数$_SESSIONの「キー」はアンダースコアかアルファベットで始まる必要があったのですね。 それが原因だったようです。

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

二次配列も格納できますよー >そのセッションに[12-3]が設定されているか判断し、 if(isset($_SESSION[12-3])) { $syouhin[12-3][name] = $_SESSION[12-3][name]; } とかいう感じ ------------おまけ(おせっかい)----- syouhin ではなく、 $syouhin ではないのですか?

rabu_chihaha
質問者

お礼

ありがとうございます。 その通り、$syouhinです。

関連するQ&A