2012-03-20 9 views
0

Magentoのカートアイテムの配列内の出現回数を数えようとしています。配列の出現数をカウント

priceフィールドを持つ配列内のいくつかの項目は、すべてがあります(どちらか$ 0〜$ 10)で私がしているよ何

は、0

の価格を持っているそれらの項目の数を表示することです

私は現在持っている:

$session = Mage::getSingleton('checkout/session'); 
$items_array = $session->getQuote()->getAllItems(); 
foreach($items_array as $item) { 
    if ($item->getPrice() == 0) { 
     echo 'Item is free'; 
    } 
    else {  
    } 
} 

これは単に、すべて無料のアイテムを出力します。理想的には、そのようなアイテムの数だけを表示したいと思います。

array_count_valuesのようなものを使用できますが、それらの値は、0と数えても問題ありませんか?

おかげ

答えて

1

あなたはいくつかの方法でそれを行うことができますが、そのコードを持つことは最も簡単なものは次のようになります。

$session = Mage::getSingleton('checkout/session'); 
$items_array = $session->getQuote()->getAllItems(); 
$freeItems = 0; 
foreach($items_array as $item) { 
    if ($item->getPrice() == 0) { 
     $freeItems++; 
    } 
} 
echo "There are $freeItems free items"; 
0
$session = Mage::getSingleton('checkout/session'); 
$items_array = $session->getQuote()->getAllItems(); 

$free = 0; 
$notfree = 0; 
foreach($items_array as $item) { 
    if ($item->getPrice() == 0) { 
     echo 'Item is free'; 
     $free++; 

    } 
    else { 
     $notfree++; 
    } 
} 

echo 'total free items = ' . $free; 
echo 'total nonfree items = ' . $notfree; 
関連する問題