我正试图从twitter api获取当前的趋势(但这无关紧要)。
我收到的信息是一个对象。在这种情况下,我需要访问的一些属性是上次更新趋势时的日期,因此我无法对属性名称进行硬编码。
这是一个例子,我没有很好地解释自己,我担心我没有:(
stdClass Object
(
[2011-03-09 02:45] => Array
(
[0] => stdClass Object
(
[promoted_content] =>
[events] =>
[query] => RIP Mike Starr
[name] => RIP Mike Starr
)
[1] => stdClass Object
(
[promoted_content] =>
[events] =>
[query] => Mac & Cheese
[name] => Mac & Cheese
)
注意:这不是完整的对象
答案 0 :(得分:12)
您可以使用get_object_vars()
$fooBar = new stdClass();
$fooBar->apple = 'red';
$fooBar->pear = 'green';
foreach(get_object_vars($fooBar) as $property => $value) {
echo $property . " = " . $value . "\n";
}
// Output
// apple = red
// pear = green
答案 1 :(得分:5)
您是否将此数据作为JSON获取?如果是这样,请查看the second argument to json_decode
,这样可以将结果作为关联数组而不是对象获取。这将允许您使用常规循环结构,例如foreach
并使用array_keys
获取密钥。
如果您没有通过JSON获取此数据,可以考虑使用Reflection抓取the properties of an object。 (编辑#2:我不确定这是否适用于stdClass,实际上......)