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;