如何引用数组中的数据(php / json)

时间:2015-06-27 10:36:05

标签: php arrays json

我使用以下内容获取json对象:

$json = file_get_contents("url-here");
$data = json_decode($json, true);
//test
var_dump($data);

这给了我这样的东西:

  

array(2){[" ok"] => bool(true)["结果"] => array(1){[0] =>阵列(2)   {[" update_id"] => int(44893465)[" message"] => array(5){   [" MESSAGE_ID"] => int(16)[" from"] => array(3){[" id"] => INT(29595794)   ["如first_name"] => string(3)" Bob" ["用户名"] => string(14)" Bobo" }   ["聊天"] => array(3){[" id"] => int(29595794)[" first_name"] =>   string(3)" Bob" ["用户名"] => string(14)" Bobo" } [" date"] =>   int(1435354253)[" text"] => string(7)" / q 3.33" }}}

然后我想将某些值添加到变量中。例如,我想提取用户名,文本,message_id等

但无论我尝试什么,我的变量都是空的:

//let's test it
echo "Username: " . $data[1][0]["username"];

//another test
echo $data->username;

这些都不起作用,我的研究没有帮助我找到解决方案。我很难过这个。

任何正确方向的指针都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

 array(2) {

        ["ok"]=> bool(true) 
        ["result"]=> array(1) 
        { 
            [0]=> array(2) 
                { 
                    ["update_id"]=> int(44893465) 
                    ["message"]=> array(5) 
                        { 
                            ["message_id"]=> int(16) 
                            ["from"]=> array(3) 
                            { 
                                ["id"]=> int(29595794) 
                                ["first_name"]=> string(3) "Bob" 
                                ["username"]=> string(14) "Bobo" 
                            } 
                            ["chat"]=> array(3) 
                            { 
                                ["id"]=> int(29595794) 
                                ["first_name"]=> string(3) "Bob" 
                                ["username"]=> string(14) "Bobo" 
                            } 
                            ["date"]=> int(1435354253) 
                            ["text"]=> string(7) "/q 3.33" 
                        } 
                } 
        } 
    }

您使用的是错误的数组索引。 $data[1][0]["username"];不存在。

$data["result"][0]["message"]["from"]["username"]; 
$data["result"][0]["message"]["chat"]["username"]; 

这将为您提供正确的用户名

答案 1 :(得分:0)

$json = file_get_contents("url-here");
$data = json_decode($json, true);
//test

echo $data["result"][0]['message']['from']['username'];

输出    波波