如何计算PHP上的数组/对象内的元素?

时间:2011-07-21 13:49:02

标签: php arrays count

我将此数组发送到我的视图

Array
(
    [0] => stdClass Object
        (
            [emg_id] => 2
            [fkit] => 1
            [door] => 
        )

)

我想计算有多少元素为空,NULL或'0'。

我尝试使用count,但它总是返回'1',而不是计算所有元素,所以我稍后可以确定哪些符合上述条件。

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:4)

// number of "null" elements
echo count(array_filter((array) $array[0], 'is_null'));

还有一些其他is_*() - 函数内置,可以帮助您计算字符串的数量(等等)。

要测试,如果元素是(例如)0,我建议使用匿名函数

echo count(array_filter((array) $array[0], function ($item) {
  return $item === 0;
}));

其他情况类似。

答案 1 :(得分:1)

循环遍历并计算。

function loopMe($array, $value) {
    $num = 0;
    foreach($array as $key=>$val) {
        if($val == $value)
        $num++;
    }
    return $num;
}


$ar = array (
    array (
        "emg_id" => 2
        "fkit" => 1
        "door" => null));
$num = loopMe($ar[0], null);