2016-03-30 3 views
1

ボタンが押された後、3つの値がPHPの多次元配列に入れられます。私は同じ大括弧で割り当てる前に値をチェックして、それは正しい値を持っているようです。私はこのような値を追加する場合ただし、:PHPセッションの多次元配列に値が割り当てられていない

if (isset($_POST['add_to_cart'])) { 
    $count = count($_SESSION['shopping_cart']); 
    echo "Count: $count<br />"; 

    $_SESSION['shopping_cart'][$count]['product_id'] = $_POST['product_id']; 
    $_SESSION['shopping_cart'][$count]['tier'] = $_POST['tier']; 
    $_SESSION['shopping_cart'][$count]['division'] = $_POST['division']; 
} 

出力は、アレイ$_SESSION['shopping_cart']が空で、値がないことを示しています。

if (empty($_SESSION['shopping_cart'])) { 
    echo "Your cart is empty.<br />"; 
} 
else { 
    //Display products in cart 
    foreach($_SESSION['shopping_cart'] as $id => $product) { 
     echo $product['tier'] . $product['division'] . "<br />"; 
    } 
} 

私は、間違った方法で値を割り当てているという結論に達しました。私は間違って何をしていますか?助けてくれてありがとう!

編集: 冒頭に配列が既に初期化されていることを追加するのを忘れてしまった!

if(!isset($_SESSION['shopping_cart'])) { 
    $_SESSION['shopping_cart'] = array(); 
} 
+0

'$ _SESSION ['shopping_cart']'は決して初期化されていない可能性があります: '$ _SESSION ['shopping_cart'] = array();' – Will

+0

@書いてくれてありがとうそれを投稿に追加するのを忘れました。既に初期化されています。 – user2283719

+1

問題ありません。また、 'session_start();'も呼びますか?もっとコードを見る必要があるかもしれないと思う。 – Will

答えて

3

コードにsession_start();を追加するのを忘れました。セッション配列が機能しなかったのはこのためです! help @Will

+1

問題ありません! :)あなたは受け入れられたとしてあなた自身の答えをマークする必要があります。 – Will

+0

はい、私は試していたが、私は2日後に自分の答えを受け入れることができるとstackoverflowは言ったので、明日まですることはできません。 – user2283719

関連する問題