0

これを行う方法がわかりません。これは私のカートへの追加スクリプトです:

$_SESSION['sku'] = $_POST['sku'];
$_SESSION['quantity'] = $_POST['quantity'];

$_SESSION['cart'][] = array($_SESSION['sku'] => $_SESSION['quantity']);

foreach($_SESSION['cart'] as $sku => $quantity) {
    echo $sku . ":" . $quantity "<br/>";
}

これは次のようなものをエコーバックします:

2:Array
3:Array
4:Array
5:Array

私は$_SESSION['cart']正しく構築していると思いますね それらを正しくエコーバックする方法がわかりません。

編集:少し遊んだ後の$ _SESSIONのvar_dump:

array(3) { ["sku"]=> &string(3) "503" ["quantity"]=> &string(1) "2" ["cart"]=> &array(17) { [0]=> array(1) { [506]=> string(1) "4" } [1]=> array(1) { [505]=> string(1) "2" } [2]=> array(1) { [505]=> string(1) "2" } [3]=> array(1) { [505]=> string(1) "2" } [4]=> array(1) { [505]=> string(1) "2" } [5]=> array(1) { [505]=> string(1) "2" } [6]=> array(1) { [505]=> string(1) "2" } [7]=> array(1) { [505]=> string(1) "2" } [8]=> array(1) { [505]=> string(1) "2" } [9]=> array(1) { [505]=> string(1) "2" } [10]=> array(1) { [506]=> string(0) "" } [11]=> array(1) { [505]=> string(1) "2" } [12]=> array(1) { [505]=> string(1) "2" } [13]=> array(1) { [503]=> string(1) "2" } [14]=> array(1) { [503]=> string(1) "2" } [15]=> array(1) { [503]=> string(1) "2" } [16]=> array(1) { [503]=> string(1) "2" } } }
4

3 に答える 3

2

配列は次のようになります。

cart = Array(n){
         [0]=>  array(1){ ['SKU1'] => int(Quantity1)},
         [1]=>  array(1){ ['SKU2'] => int(Quantity2)},
...
}

したがって、実際には次のように使用する必要があります。

foreach($_SESSION['cart'] as $arr) {
    foreach($arr as $sku => $quantity) {
        echo $sku . ":" . $quantity . "<br/>";
    }    
}

または、次のようにSKUをカートに追加できます。

$sku = $_SESSION['sku'];
$quantity = $_SESSION['quantity']);
$_SESSION['cart'][$sku] = $quantity;

そうすれば、コードを「そのまま」使用できるようになります。

foreach($_SESSION['cart'] as $sku => $quantity) {
    echo $sku . ":" . $quantity "<br/>";
}
于 2012-08-07T00:09:59.210 に答える
0

はい、あなたはそれを正しくやっています。結果をどのように見たいですか?

于 2012-08-07T00:02:45.480 に答える
0

行う:

$_SESSION['cart'][$_SESSION['sku']] = $_SESSION['quantity'];

1つだけを使用するにはforeach

于 2012-08-07T00:13:35.450 に答える