Json解码但没有指定数组

时间:2013-12-17 20:35:04

标签: php arrays json

我从网站上拉了一个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"];

1 个答案:

答案 0 :(得分:0)

echo $decode['workers']['username.1']['alive'];

如果你想要username.1那么:

foreach($decode['workers'] as $worker => $values) {
    echo "username: $worker alive: {$values['alive']}";
}