0

私はこの電子商取引サイトに取り組んでおり、PHP でカート項目を含む JSON 配列を作成しようとしています。

これまでのところ、私は持っています:

for ($i=0; $i < count($_SESSION['cart']); $i++) {
  $prodid = $_SESSION['cart'][$i][0];
  $sizeId = $_SESSION['cart'][$i][1];
  $colorId = $_SESSION['cart'][$i][2];
  $qty = $_SESSION['cart'][$i][3];
  $inslagning = $_SESSION['cart'][$i][4];
  $wrapCost += ($inslagning == 'YES' ? 20 : 0);
  $row = get_product_buy($prodid, $sizeId, $colorId);
  $prodname = $row['prodname'];
  $color = $row['color'];
  $size = $row['size'];
  $prodCatid  = $row['catid'];
  $image = $row['biggerimage'];
  $box = $row['box_number'];

  for ($j=0;$j<$qty;$j++) {
    $cart = array(
        'reference' => '123456789',
        'name' => $prodname,
        'quantity' => $qty,
        'unit_price' => $price,
        'discount_rate' => 0,
        'tax_rate' => 2500
    );
  }
}

おそらく間違っているループ内に $cart 変数があることはわかっています。最終結果は次のようになります。

$cart = array(
    array(
        'reference' => '123456789',
        'name' => 'Klarna t-shirt',
        'quantity' => 1,
        'unit_price' => $att_betala * 100,
        'discount_rate' => 0,
        'tax_rate' => 2500
    ),
    array(
        'reference' => '123456789',
        'name' => 'Klarna t-shirt',
        'quantity' => 1,
        'unit_price' => $att_betala * 100,
        'discount_rate' => 0,
        'tax_rate' => 2500
    )
);

すべての助けに感謝します!

4

4 に答える 4

4
于 2013-03-22T08:50:06.460 に答える
0

使ってみて

for ($j=0;$j<$qty;$j++) {
$cart[] = array(
    'reference' => '123456789',
    'name' => $prodname,
    'quantity' => $qty,
    'unit_price' => $price,
    'discount_rate' => 0,
    'tax_rate' => 2500
);
}

$json_enc  = json_encode($cart);
于 2013-03-22T08:51:28.567 に答える
0

$cart 変数に追加するのではなく、ループのすべてのパスで上書きしています。

次の[]構文を使用して、配列に追加します。

$cart[]=...

また、コードの先頭で空の配列を宣言することをお勧めします。

$cart=array();
于 2013-03-22T08:52:19.010 に答える
0

このように使用します

$cart[] = array(
    'reference' => '123456789',
    'name' => $prodname,
    'quantity' => $qty,
    'unit_price' => $price,
    'discount_rate' => 0,
    'tax_rate' => 2500
);
于 2013-03-22T08:47:39.863 に答える