Arrays 计算数组中的出现次数

Arrays 计算数组中的出现次数,arrays,magento,Arrays,Magento,我试图计算Magento中购物车项目数组中出现的次数 数组中有多个项目,都带有price字段(0美元和10美元) 我想做的是显示价格为0 我目前有: $session = Mage::getSingleton('checkout/session'); $items_array = $session->getQuote()->getAllItems(); foreach($items_array as $item) { if ($item->getPrice() ==

我试图计算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\u count\u values
,但将其限制为仅计算
0
的值吗?

您可以通过几种方法来实现,但使用该代码最简单的方法是:

$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";
$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;