1

while ループの各インスタンスで配列の内容全体を反復する foreach ループに問題があります。

ループを動かして、ブレーク & コンティニュー ポイントを追加し、別の構文を使用してみました。配列をさらに定義する必要がありますか? foreach ループを何らかの方法で while に統合しますか? どんなポインタでも大歓迎です。コードの基本的な概要を次に示します (e コマース プラグインの「Shopp」を使用して、同様のコード例を以下に示します。https://shopplugin.net/api/shopp_cart_items/ ):

<?php  while(shopp('cart','items')): // initializes the shopping cart loop

           $Items = shopp_cart_items(); 
            foreach ( $Items as $item ):

        echo $item->quantity * $item->weight; // multiplies weight by quantity

                endforeach; echo 'g'; endwhile; ?>

製品は重量で測定されるため、例として、カートには重量がそれぞれ 1 グラムと 2 グラムの 2 つのアイテムがあります。

現在の出力は次のとおりです。

カート アイテム 1 - 重量: 12g
カート アイテム 2 - 重量: 12g

予想される出力は次のとおりです。

カート アイテム 1 - 重量: 1g
カート アイテム 2 - 重量: 2g

前もって感謝します!

IH

編集:

Shopp には製品の重量に関するドキュメントがないため、製品のオブジェクトと配列を見つけて、while の反復ごとに循環する ++ 演算子を追加する必要がありました。これが私が使用したコードです。

echo $Items[$i++]->option->dimensions['weight'] * shopp('cartitem','quantity', 'echo=false');

ループの外側に設定された整数: $i = 0;

4

2 に答える 2

0

別のアプローチ

  $product_id = shopp('cartitem.get-product');
  $weight = shopp('product.get-weight'); // use product tag to get weight
  $quantity = shopp('cartitem.get-quantity'); // use cart-item tag to get quantity
  echo $weight * $quantity .' g';
于 2014-08-12T20:17:40.333 に答える
0
echo $item->quantity * $item->weight; // multiplies weight by quantity

おそらく不適切に返されますが、次のように単純な可能性があります

echo ($item->quantity * $item->weight);

また、$item $Item と $items のように、Item 以外のものを使用することをお勧めします。

于 2013-09-09T21:56:24.323 に答える