- 締切済み
同様の値があるか判別するには?
ショッピングカートを作っており商品情報を以下のような セッション配列で管理しています。 Array ( [set] => Array ( [0] => Array ( [key] => 商品名A [num] => 1 [price] => 1980 ) [1] => Array ( [key] => 商品名B [num] => 1 [price] => 2980 ) [2] => Array ( [key] => 商品名C [num] => 1 [price] => 3980 ) ) ) やりたいことは既に持っているセッションの['key']と商品名の 変数が同様かどうかを判別し同様の値があった場合となかった 場合で分岐しそれぞれの処理をしたいです。 分岐後の処理はなんとかなるのですがどうやって判断すれば いいものかわかりません^^; $set = 'ここに商品名がはいります'; if (!count($_SESSION['set'])) { // セッションカウントがない場合 // (1つ目の商品をカートに入れた場合) // 値設定 $n = 0; $_SESSION['set'][$n]['key'] = $set; // その他の処理 } else { // セッションカウントがある場合 // (2つ目以降の商品をカートに入れた場合) // 値設定 $n = count($_SESSION['set']); if (!array_search($set, $_SESSION['set'][$n])) { // ここで同様の値があるか判別したい } if (***) { // 同様の値がある場合の処理 } else { // 同様の値がない場合の処理 } } 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
お礼
度々のお返事ありがとございます。 >最初からベストな作りにするのは難しいでしょうから、少しずつ改変などしていくのがイイかと思います。 確かにそれは言えてますね。私も作っては考え変更しての日々精進ですw >新たに思いついた配列はarray("商品ID"=>"個数");のみ。 これにつきまして若干補足をして頂けますと幸いなのですが現在の私の考え方としては 商品詳細ページのurlをhoge.php?id=商品idとしており商品idからmysqlに商品名や 価格などの情報を問い合わせ変数に格納し必要な情報を表示しています。 商品の数量などを選択しをカートに入れるボタンを押し確定した段階にてpostされた 個数はもちろんmysqlに問い合わせ変数に格納した商品名や価格などもセッションに 入れた後カート内を表示するページに移動しているのですがそうではなく商品詳細ページでは array("商品ID"=>"個数"); のみのセッション配列を保持しカート内を表示するページで合計料金などの算出をし セッションに組み込んでいくという解釈でよろしいのでしょうか? そうだとすればコードもだいぶシンプルになるような気がしてきました☆