Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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中使用和服api数据_Php_Json_Api - Fatal编程技术网

在php中使用和服api数据

在php中使用和服api数据,php,json,api,Php,Json,Api,我是api的noob,所以请容忍我。我试着用谷歌搜索了一个小时,但从结果中我什么都看不懂 目前,我在和服中有一个API,包含给定的示例数据: { "name": "Summoners-Details", "count": 31, "frequency": "On demand", "version": 7, "newdata": false, "lastrunstatus": "success", "thisversionrun": "Tue Sep 02 2014

我是api的noob,所以请容忍我。我试着用谷歌搜索了一个小时,但从结果中我什么都看不懂

目前,我在和服中有一个API,包含给定的示例数据:

{
  "name": "Summoners-Details",
  "count": 31,
  "frequency": "On demand",
  "version": 7,
  "newdata": false,
  "lastrunstatus": "success",
  "thisversionrun": "Tue Sep 02 2014 02:34:07 GMT+0000 (UTC)",
  "lastsuccess": "Tue Sep 02 2014 02:34:07 GMT+0000 (UTC)",
  "stats": {
    "retriedUrls": [],
    "failedUrls": [],
    "successful": 1,
    "rows": 31,
    "retried": 0,
    "failed": 0,
    "duration": 1894
  },
  "results": {
    "rank": [
      {
        "division": "Wukong's Lancers Silver-tier II"
      }
    ]
  }
}
下面是我试图用来获取除法数据的php代码,但我什么也没有得到!:

<?php
$request = "https://www.kimonolabs.com/api/c6qj1oc?apikey=xxxxxxxxxxxxxxxxxx";
$response = file_get_contents($request);
$results = json_decode($response, TRUE);

$division = $results->{'results'}->{'rank'}->{'division'};
echo $division;
?>

我在这里做错了什么;博士
  • json\u decode()中删除“true”参数
  • {'rank'}
    之后添加
    [0]

  • 您的问题在于如何使用
    json\u decode()
    。。。第二个参数(true)告诉它返回关联数组而不是对象

    其次,JSON的
    rank
    部分是一个数组,因此需要使用zero键来访问它的值

    阵列访问如下所示:

    $division = $results['results']['rank'][0]['division'];
    
    $division = $results->results->rank[0]->division;
    
    否则,删除true参数,它将默认为一个对象,您可以像这样访问该变量:

    $division = $results['results']['rank'][0]['division'];
    
    $division = $results->results->rank[0]->division;
    
    这里有更多的信息


    请记住,从技术上讲,您已经得到的
    $division
    定义(添加零数组键)可以很好地用于对象而不是数组,我只删除了
    {xxx'}
    括号,因为它们是不必要的。

    感谢scrowler的解释,我已经能够显示我的数据。以下是工作代码:

    <?php
    $request = "https://www.kimonolabs.com/api/c6qj1oc?apikey=xxxxxxxxxxxxxx";
    $response = file_get_contents($request);
    $results = json_decode($response, TRUE);
    
    $division = $results['results']['rank'];
    
    foreach($division as $key => $value)
    {
        echo $value['division'];
    }
    ?>
    
    
    

    不太确定是否真的需要foreach循环,但是嘿,将来可能有用:D

    非常感谢!!:实际上,我编辑了api以获得更多数组格式的数据,所以我想真正的符号是存在的。你对阵列访问的解释解决了我的问题!干杯注意:foreach不是必需的,它只是访问秩数组的一种方式,不需要数字索引。至于它在未来是否有用,如果你预测多个等级被返回的可能性,那么它会有用,这一点可能是有道理的,因为和服已经决定首先将其作为数组返回。但是,如何处理返回的多个值取决于您。