подсчет вхождений в массиве - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь подсчитать количество вхождений в массиве элементов корзины в 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?

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Вы можете сделать это несколькими способами, но этот код будет наиболее простым:

$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 голосов
/ 20 марта 2012
$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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...