我从网站上拉了一个json并使用json_decode函数将它放入数组中。但是数组没有定义,因此我无法获取第一个数组下面的已定义索引。
这是我在运行解码后的json示例。
Array
(
[username] => username
[confirmed] => 0.00
[estimate] => 0.00
[total] => 0000
[history] => 0000.0000
[round] => 0000
[workers] => Array
(
[username.1] => Array
(
[alive] => 1
[rate] => 0000
)
以下是我用来获取该代码的代码。
$json = file_get_contents("http://imareal.website", true); //getting the file content
$decode = json_decode($json, true);
所以我可以使用
访问最顶层数组中的任何内容 echo "Username: " .$decode["username"];
但是一旦我需要降低,那么[工人]就无法找到索引。
有没有办法在解码期间或之后定义数组?或者我可以告诉它看起来更低吗?
更新: 好的,所以运行var_dump($ decode ['workers']); 给我:
array(5) { ["username.1"]=> array(2) { ["alive"]=> string(1) "1" ["rate"]=> string(4) "0000" } ["username.2"]=> array(2) { ["alive"]=> string(1) "1" ["rate"]=> string(4) "0000" } ["username.3"]=> array(2) { ["alive"]=> string(1) "1" ["rate"]=> string(3) "0000" } ["username.10"]=> array(2) { ["alive"]=> string(1) "0" ["rate"]=> string(1) "0000" } ["username.11"]=> array(2) { ["alive"]=> string(1) "1" ["rate"]=> string(3) "643" } }
当我尝试使用以下任何一行时,我会得到非法或未定义的偏移或未定义的索引。
echo $decode[5]->alive->value;
echo $decode[2]->alive->value;
echo "Username.1: " .$decode["username.1"]["alive"];
echo "Username.1: " .$decode["2"]["alive"];
echo "Username.1: " .$decode["5"]["alive"];
答案 0 :(得分:0)
echo $decode['workers']['username.1']['alive'];
如果你想要username.1
那么:
foreach($decode['workers'] as $worker => $values) {
echo "username: $worker alive: {$values['alive']}";
}