计数数组中的对象(php)
我对php完全是个新手,但不管怎样,下面是: 我想在下面的数组中计算[completed]=>booltrue的数量 我可以通过这样做来计算总数:$totalCount=count$object->data;。我是否需要做一个foreach来获得完成的数量,或者我可以通过做一些计数来绕过它 谢谢计数数组中的对象(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) {
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'],因为您处理的是对象而不是数组。