好的,所以我把它放在一个JSON数组中( retrieveData()的输出)
{
"device": {
"01AA02AB141208VV": {
"$version": -148598935,
"$timestamp": 1344382016000,
"serial_number": "01AA02AB141208VV"
}
}
}
但是,我似乎无法选择序列号。我尝试了通常有用的东西,但我不能选择它。这是假设我们还不知道“01AA02AB141208VV”。
$retrieved_data = retrieveData($array['userid'], $array['urls']['transport_url'], $array['access_token']);
$retrieved_data_array = json_decode($retrieved_data, true);
$serial_number = $retrieved_data_array['device'][0]['serial_number'];
我做错了吗?我打赌这很简单,但我无法理解!
谢谢!
答案 0 :(得分:4)
不幸的是,这并不是很简单。当您不知道Main St.所在的城市时,您正试图找到42 Main St.。找到serial_number
的唯一方法是使用{{1}循环$retrieved_data_array
直到找到你想要的值。
答案 1 :(得分:3)
你可以使用key()函数来访问关联数组的键(在这种情况下是'$ retrieve_data_array ['device']'数组:
<?php
$data = '{"device": {"01AA02AB141208VV": {"$version": -148598935,"$timestamp": 1344382016000,"serial_number": "01AA02AB141208VV"}}}';
$retrieved_data_array = json_decode($data, true);
$serial_number = key($retrieved_data_array['device']);
reset($retrieved_data_array['device']);
print_r($serial_number);
print_r($retrieved_data_array['device'][$serial_number]);
?>
答案 2 :(得分:1)
这将获取序列号,假设您在设备数组中有多个项目:
$keys = array();
foreach( $retrieved_data_array['device'] as $key => $val ){
$keys[] = $key;
}
$serial = $keys[0];
如果您知道阵列中只有一个项目,则可以减少...