セッション配列が上書きできない
POSTした値をセッションに追加して配列にしています。
POSTした値と同じ[key]があったときは上書きしたいのですが、何度やってもうまく行きません。
どのようにしたら上書きするでしょうか。
session_start();
//セッション変数「item」が未設定の場合は空の配列に初期化
if (!isset($_SESSION['item'])) {
$_SESSION['item'][] = array();
} else if (is_string($_SESSION['item'])) {
//セッション変数「cart」に文字列が存在していれば配列セッションcartを代入
$_SESSION['item'][] = array($_SESSION['item']);
}
sort($_SESSION['item']);
/********************追加処理**********************/
$key = isset($_SESSION['item'][ $_POST['key'] ]);
//セッション変数内にPOSTで送られてきたidと同じものが無かった場合の処理
if ($key) {
if (isset($_SESSION['item']['type'])) {
$_SESSION['item']['type'] = $_POST['type'];
if (isset($_SESSION['item']['days'])) {
$_SESSION['item']['days'] = $_POST['days'];
}
}
}else{
if (isset($_POST['key'])) {
if (isset($_POST['type'])) {
if (isset($_POST['day'])) {
if (isset($_POST['price'])) {
if (isset($_POST['days'])) {
//送られてきたデータを配列に格納
$item = array('key' => $_POST['key'],
'type' => $_POST['type'],
'day' => $_POST['day'],
'price' => $_POST['price'],
'days' => $_POST['days']);
}
}
}
}
} else {
echo = 'no item'; //何もカートに入っていません
}
}
//セッション変数「item」に配列の中身を追加
if (isset($item)) {
$_SESSION['item'][] = $item;
};
$item = $_SESSION['item'];
$item = array_filter($item);
セッションは配列にして受渡ししています。
$item = $_SESSION['item']
Array (
[1] => Array ( [key] => 1450669337 [type] => 4 [dayset] => 20151225 [price]=> 1,000 [days] => 1 )
[2] => Array ( [key] => 1450669517 [type] => 6 [dayset] => 20151231 [price] => 3,000 [days] => 3 ) )