PHP计数对象属性的出现次数

时间:2011-06-09 09:55:34

标签: php arrays object count

我有一个像下面这样的PHP对象,我想知道最简单的方法是获取属性'typeId'= 3

的对象计数
Array
(
    [0] => ABC Object
        (
            [id] => 13
            [typeId] => 3
            [sortOrder] => 0
        )
    [1] => ABC Object
        (
            [id] => 12
            [typeId] => 2
            [sortOrder] => 0
        )
    [2] => ABC Object
        (
            [id] => 14
            [typeId] => 4
            [sortOrder] => 0
        )
    [3] => ABC Object
        (
            [id] => 15
            [typeId] => 3
            [sortOrder] => 0
        )
)

3 个答案:

答案 0 :(得分:3)

一个简单的foreach计数器应该:

$count = 0;
foreach ($array as $object) {
    if ($object->typeId == 3) $count++;
}

无需过度复杂化

答案 1 :(得分:1)

从我的观点来看,一个更好的解决方案是使用array_filter函数:

$newarray = array_filter( $old_array, function($object) { return $object->typeId == 3; } );

(注意:内联函数仅在PHP 5.3起作用)

答案 2 :(得分:0)

只需创建一个名为objectCount或类似的临时变量,循环遍历数组,当找到typeId等于3的对象时,将{1}添加到objectCount