解析基于 PHP std class 对象的时间戳
Parsing a timestamp based PHP std class obkect
我有一个 PHP 标准 class 对象从 API 上的 REST 调用的 json_decode 转换而来,看起来像:
Array
(
[1437688713] => stdClass Object
(
[handle] => Keep it logically awesome.
[id] => 377748
[ping] => stdClass Object
(
[url] => https://api.me.com
[id] => 377748
[name] => web
[active] => 1
[events] => Array
(
[0] => data_new
[1] => data_old
)
到目前为止,我在解析任何 PHP 对象时没有遇到任何问题。但是这个失败了,因为我无法使用键访问嵌套对象元素,因为 1437688713 未分配给键,如果我尝试这样做,访问对象会失败:
$object->1437688713->handle
有没有办法访问这些元素?
更新:还有一件事,我永远不会提前知道这个值 (1437688713)。就像一把钥匙。我得到的只是一个我必须解析的 stdclass 对象。
从 $object
数组中获取第一项
$first_key = key($object);
将它与您的响应数组一起使用,
$object[$first_key]->handle;
或者,数组的第一个元素
$first_pair = reset($object)->handle;
数据的外部是一个数组,而不是一个对象。尝试:
$array['1437688713']->handle;
或者如果您不知道密钥,您可以遍历数组(如果它也可能包含多个对象则很方便):
foreach ($array as $key => $object) {
echo $key; // outputs: 1437688713
echo $object->handle; // outputs: Keep it logically awesome.
}
我有一个 PHP 标准 class 对象从 API 上的 REST 调用的 json_decode 转换而来,看起来像:
Array
(
[1437688713] => stdClass Object
(
[handle] => Keep it logically awesome.
[id] => 377748
[ping] => stdClass Object
(
[url] => https://api.me.com
[id] => 377748
[name] => web
[active] => 1
[events] => Array
(
[0] => data_new
[1] => data_old
)
到目前为止,我在解析任何 PHP 对象时没有遇到任何问题。但是这个失败了,因为我无法使用键访问嵌套对象元素,因为 1437688713 未分配给键,如果我尝试这样做,访问对象会失败:
$object->1437688713->handle
有没有办法访问这些元素?
更新:还有一件事,我永远不会提前知道这个值 (1437688713)。就像一把钥匙。我得到的只是一个我必须解析的 stdclass 对象。
从 $object
数组中获取第一项
$first_key = key($object);
将它与您的响应数组一起使用,
$object[$first_key]->handle;
或者,数组的第一个元素
$first_pair = reset($object)->handle;
数据的外部是一个数组,而不是一个对象。尝试:
$array['1437688713']->handle;
或者如果您不知道密钥,您可以遍历数组(如果它也可能包含多个对象则很方便):
foreach ($array as $key => $object) {
echo $key; // outputs: 1437688713
echo $object->handle; // outputs: Keep it logically awesome.
}