Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从JSON获取值_Php_Json - Fatal编程技术网

PHP从JSON获取值

PHP从JSON获取值,php,json,Php,Json,假设我有一个JSON: { "achievement": [ { "title": "Ready for Work", "description": "Sign up and get validated", "xp": 50, "difficulty": 1, "level_req": 1 }, { "title": "All Around Submitter", "descripti

假设我有一个JSON:

{
  "achievement": [
    {
      "title": "Ready for Work",
      "description": "Sign up and get validated",
      "xp": 50,
      "difficulty": 1,
      "level_req": 1
    },
    {
      "title": "All Around Submitter",
      "description": "Get one piece of textual content approved in all five areas.",
      "xp": 500,
      "difficulty": 2,
      "level_req": 1
    }
}
我正在通过PHP尝试这一点:

$string = file_get_contents("achievements.json");
$json_a=json_decode($string,true);

$getit = $json_a->achievement['title'][1];
我正在尝试获取该成就的第一个id。。这样就可以开始工作了


如何解决此问题?

当您将json_decode的第二个参数设置为true时,它将返回一个数组

$json_a=json_decode($string,true);
$getit = $json_a['achievement'][1]['title'];
返回一个数组

$json_a=json_decode($string,true);
$getit = $json_a['achievement'][1]['title'];

并将索引从1更改为零,以获得准备就绪的工作项。毕竟,PHP中的数组都是基于零的索引。啊,对了,我真傻,竟然这样。。什么谢谢所以ID从0开始。@weka Yes,1表示$json_a['Achatization']的第二个元素。只需指出,在最后一个}之前缺少一个元素,因为在添加缺少的方括号之前,您发布的元素无效。您的json无效,并且将始终返回Error我知道它无效。因为篇幅较长,所以我只讲了一小段。一切都很好。