计算数组中的对象(php)

时间:2015-02-09 11:31:44

标签: php arrays

我是php的一个完整的新手,但无论如何,这里是:

我想计算下面数组中["completed"]=> bool(true)的数量。

我能够通过这样做来计算总数:$totalCount = count($object->data);。我是否需要foreach()才能获得completed的数量,或者我可以通过做某种count()来解决这个问题?

谢谢!

object(stdClass)#2 (1) {
  ["data"]=>
  array(232) {
    [0]=>
    object(stdClass)#3 (2) {
      ["id"]=>
      int(13081073106396)
      ["completed"]=>
      bool(true)
    }
    [1]=>
    object(stdClass)#4 (2) {
      ["id"]=>
      int(13160080793822)
      ["completed"]=>
      bool(false)
    }

3 个答案:

答案 0 :(得分:0)

我觉得这样的事情可能有用:

var $count = 0;
foreach($stdClass->data as $obj)
    if($obj->completed)
        $count++;

答案 1 :(得分:0)

考虑$ oObject是你的对象

$array = json_decode(json_encode($oObject),true);

然后应用简单的数组计数,如

echo count($array);

它将返回数据的总数。希望这会有所帮助!

答案 2 :(得分:0)

使用回调来计算:

$countCompleted = 0;

array_map(function ($n) use $countCompleted {
    if ( $n->completed === true )
         $countCompleted ++;
}, $objectMap->data );