POSTした値をセッションに追加して配列にしています。
POSTした値と同じ[key]があったときは上書きしたいのですが、何度やってもうまく行きません。
どのようにしたら上書きするでしょうか。
PHP
1 session_start(); 2 3 //セッション変数「cart」が未設定の場合は空の配列に初期化 4 if (!isset($_SESSION['item'])) { 5 $_SESSION['item'][] = array(); 6 } else if (is_string($_SESSION['item'])) { 7 //セッション変数「item」に文字列が存在していれば配列セッションitemを代入 8 $_SESSION['item'][] = array($_SESSION['item']); 9 } 10 sort($_SESSION['item']); 11 $key = in_array($_SESSION['item'][ $_POST['key'] ]); 12 13//セッション変数内にPOSTで送られてきたidと同じものが無かった場合の処理 14 if ($key) { 15 if (isset($_SESSION['item']['type'])) { 16 $_SESSION['item']['type'] = $_POST['type']; 17 18 if (isset($_SESSION['item']['days'])) { 19 $_SESSION['item']['days'] = $_POST['days']; 20 21 } 22 } 23 }else{ 24 if (isset($_POST['key'])) { 25 if (isset($_POST['type'])) { 26 if (isset($_POST['day'])) { 27 if (isset($_POST['price'])) { 28 if (isset($_POST['days'])) { 29 //送られてきたデータを配列に格納 30 $item = array('key' => $_POST['key'], 31 'type' => $_POST['type'], 32 'day' => $_POST['day'], 33 'price' => $_POST['price'], 34 'days' => $_POST['days']); 35 } 36 } 37 } 38 } 39 } else { 40 echo = 'no item'; //何もカートに入っていません 41 } 42 } 43//セッション変数「item」に配列の中身を追加 44 if (isset($item)) { 45 $_SESSION['item'][] = $item; 46 }; 47 48 $item = $_SESSION['item']; 49 $item = array_filter($item);
セッションは配列にして受渡ししています。
$item = $_SESSION['item']
PHP
1Array ( 2[1] => Array ( [key] => 1450669337 [type] => 4 [dayset] => 20151225 [price] => 1,000 [days] => 1 ) 3[2] => Array ( [key] => 1450669517 [type] => 6 [dayset] => 20151231 [price] => 3,000 [days] => 3 ) ) 4
回答2件
あなたの回答
tips
プレビュー