计数数组中的对象(php)

计数数组中的对象(php),php,arrays,Php,Arrays,我对php完全是个新手,但不管怎样,下面是: 我想在下面的数组中计算[completed]=>booltrue的数量 我可以通过这样做来计算总数:$totalCount=count$object->data;。我是否需要做一个foreach来获得完成的数量,或者我可以通过做一些计数来绕过它 谢谢 object(stdClass)#2 (1) { ["data"]=> array(232) { [0]=> object(stdClass)#3 (2) {

我对php完全是个新手,但不管怎样,下面是:

我想在下面的数组中计算[completed]=>booltrue的数量

我可以通过这样做来计算总数:$totalCount=count$object->data;。我是否需要做一个foreach来获得完成的数量,或者我可以通过做一些计数来绕过它

谢谢

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)
    }

我认为这样做可能会奏效:

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

假设$oObject是您的对象

$array = json_decode(json_encode($oObject),true);
然后应用简单的数组计数,如

echo count($array);

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

使用回调进行计数:

$countCompleted = 0;

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

看起来这已经得到了回答:[[1]:您可以使用@gratz所指的答案,只需记住使用->操作符引用对象属性,因此它是$obj->data而不是$obj['data'],因为您处理的是对象而不是数组。