アプリ版:「スタンプのみでお礼する」機能のリリースについて

php4.3です。
例えば、
syouhin[12-3][name]='aaa'
syouhin[12-3][price]='2000'
syouhin[12-3][tani]='箱'
syouhin[22-4][name]='bbb'
syouhin[22-4][price]='1500'
syouhin[22-4][tani]='袋'
・・・
のような二次元配列があった場合、
$_SESSION("s_arry")に
syouhin[12-3]の[12-3]のキーと
[name][price][tani]の値を
を渡したいのですが。
[22-4]も追加することもあります。
また、そのセッションに[12-3]が設定されているか
判断し、されていれば[name]等を参照したいのですが。

意味がお分かりでしょうか?
まだセッションのところが良くわからず悪戦苦闘しています。

よろしくお願い致します。

A 回答 (3件)

$_SESSION変数には配列も保存できます。

質問の例ですと
$_SESSION = $syouhin;
とすると、$syouhin変数の配列自体を$_SESSION変数に保存する事ができます。

この場合次のページで$_SESSION["shouhin"][22-4]などという方法で参照もできますが、わかりづらいのでsession_open関数の後でis_array関数などを使って値を調べ、配列であれば$syouhin = $_SESSION["syouhin"]などとすると解りやすいと思います。
    • good
    • 0
この回答へのお礼

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

まずは二次元配列の全ての値を取得できるように
ならなくては・・・。

まだまだphp道のりは長いです。

お礼日時:2005/06/22 11:37

No1です。



>まずは二次元配列の全ての値を取得できるように
ならなくては・・・。

二次元配列の全ての値を取得できない、というのはおかしいですね。前のページで$_SESSION変数に入れた値はそのまま次のページに引き継がれるので、それが取得できないのは何かSESSION以外の他に原因があるのでは。

先の回答に書いた
$syouhin = $_SESSION["syouhin"]
とする事で、前のページで使っていた$syouhin変数そのままの形に戻るはずです。この時期待した値が取れないとしたら、前のページの$_SESSION=$syouhinの手前でvar_dump($syouhin)として、$syouhin変数の中身を確認してみてはどうでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/22 13:36

二次配列も格納できますよー




>そのセッションに[12-3]が設定されているか判断し、

if(isset($_SESSION[12-3]))
{
$syouhin[12-3][name] = $_SESSION[12-3][name];
}

とかいう感じ

------------おまけ(おせっかい)-----
syouhin
ではなく、
$syouhin
ではないのですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/22 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています