- ベストアンサー
PHP4.3での$_SESSIONの二次元配列の使用方法と参照方法について
- PHP4.3では、$_SESSIONに二次元配列を使用することができます。
- 具体的な例として、syouhin[12-3][name]='aaa'などの二次元配列がある場合、$_SESSION('s_arry')にキーと値を渡すことができます。
- また、特定のキーがセッションに設定されているかどうかを判断し、参照することも可能です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$_SESSION変数には配列も保存できます。質問の例ですと $_SESSION = $syouhin; とすると、$syouhin変数の配列自体を$_SESSION変数に保存する事ができます。 この場合次のページで$_SESSION["shouhin"][22-4]などという方法で参照もできますが、わかりづらいのでsession_open関数の後でis_array関数などを使って値を調べ、配列であれば$syouhin = $_SESSION["syouhin"]などとすると解りやすいと思います。
その他の回答 (2)
- wakame0729
- ベストアンサー率32% (245/765)
No1です。 >まずは二次元配列の全ての値を取得できるように ならなくては・・・。 二次元配列の全ての値を取得できない、というのはおかしいですね。前のページで$_SESSION変数に入れた値はそのまま次のページに引き継がれるので、それが取得できないのは何かSESSION以外の他に原因があるのでは。 先の回答に書いた $syouhin = $_SESSION["syouhin"] とする事で、前のページで使っていた$syouhin変数そのままの形に戻るはずです。この時期待した値が取れないとしたら、前のページの$_SESSION=$syouhinの手前でvar_dump($syouhin)として、$syouhin変数の中身を確認してみてはどうでしょうか。
お礼
変数$_SESSIONの「キー」はアンダースコアかアルファベットで始まる必要があったのですね。 それが原因だったようです。
- inu2
- ベストアンサー率33% (1229/3720)
二次配列も格納できますよー >そのセッションに[12-3]が設定されているか判断し、 if(isset($_SESSION[12-3])) { $syouhin[12-3][name] = $_SESSION[12-3][name]; } とかいう感じ ------------おまけ(おせっかい)----- syouhin ではなく、 $syouhin ではないのですか?
お礼
ありがとうございます。 その通り、$syouhinです。
お礼
ありがとうございます。 二次元配列をセッションに保存することは、 できたようですが、次のページで二次元 配列の全ての値を取得する方法がわからなかったので 別の方法をとりました。 まずは二次元配列の全ての値を取得できるように ならなくては・・・。 まだまだphp道のりは長いです。