PHP:计算一个stdClass对象

我有一个从json_decode创建的stdClass对象,当我运行count($

obj)函数时不会返回正确的数字。该对象具有30个属性,但count()函数的返回值为1。

有任何想法吗?

以下是其中一个对象的示例。(我正在从Twitter请求每日趋势信息)。如果此对象具有多个属性,则count($ obj)等于1。

[trends] => stdClass Object

(

[2009-08-21 11:05] => Array

(

[0] => stdClass Object

(

[query] => "Follow Friday"

[name] => Follow Friday

)

[1] => stdClass Object

(

[query] => "Inglourious Basterds" OR "Inglorious Basterds"

[name] => Inglourious Basterds

)

[2] => stdClass Object

(

[query] => Inglourious

[name] => Inglourious

)

[3] => stdClass Object

(

[query] => #songsincode

[name] => #songsincode

)

[4] => stdClass Object

(

[query] => #shoutout

[name] => #shoutout

)

[5] => stdClass Object

(

[query] => "District 9"

[name] => District 9

)

[6] => stdClass Object

(

[query] => #howmanypeople

[name] => #howmanypeople

)

[7] => stdClass Object

(

[query] => Ashes OR #ashes

[name] => Ashes

)

[8] => stdClass Object

(

[query] => #youtubefail

[name] => #youtubefail

)

[9] => stdClass Object

(

[query] => TGIF

[name] => TGIF

)

[10] => stdClass Object

(

[query] => #wish09

[name] => #wish09

)

[11] => stdClass Object

(

[query] => #watch

[name] => #watch

)

[12] => stdClass Object

(

[query] => Avatar

[name] => Avatar

)

[13] => stdClass Object

(

[query] => Ramadhan

[name] => Ramadhan

)

[14] => stdClass Object

(

[query] => Goodnight

[name] => Goodnight

)

[15] => stdClass Object

(

[query] => iPhone

[name] => iPhone

)

[16] => stdClass Object

(

[query] => #iranelection

[name] => #iranelection

)

[17] => stdClass Object

(

[query] => Apple

[name] => Apple

)

[18] => stdClass Object

(

[query] => "Usain Bolt"

[name] => Usain Bolt

)

[19] => stdClass Object

(

[query] => H1N1

[name] => H1N1

)

)

)

回答:

问题在于count的目的是对数组中的索引进行计数,而不是对对象的属性进行计数(除非它是实现Countable接口的自定义对象)。尝试像下面那样将对象转换为数组,看看是否有帮助。

$total = count((array)$obj);

简单地将对象转换为数组并不总是可行,但是作为一个简单的stdClass对象,它应该可以在这里完成工作。

以上是 PHP:计算一个stdClass对象 的全部内容, 来源链接: utcz.com/qa/404383.html

回到顶部