如何在PHP中输出特定的数组?

时间:2016-05-04 08:03:38

标签: php api

我尝试编写API的输出。

所以我最初接受了这个:

$api_response = json_decode(file_get_contents("--LINK TO API--"));

如果我var_dump $ api_response,像

这样的代码
object(stdClass)#1 (3) {
  ["status"]=>
  string(2) "ok"
  ["count"]=>
  int(1)
  ["data"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (4) {
      ["clan_id"]=>
      int(1000001876)
      ["nickname"]=>
      string(10) "JakenVeina"
      ["id"]=>
      int(1001147659)
      ["account_id"]=>
      int(1001147659)
    }
  }
}

因此,如果我只想输出account_id,我尝试了更多方法:

$account_id = $api_response["data"]["account_id];
echo $account_id;

echo $api_response->account_id;

对我来说没有任何作用。 有没有人有想法?

3 个答案:

答案 0 :(得分:1)

您没有要求json_decode解码为数组。

你需要(注意真实):

$api_response = json_decode(file_get_contents("--LINK TO API--"), true);

然后你应该能够根据需要访问数组键。

同样account_id是一个低于您指定的子级别。

答案 1 :(得分:0)

结果的第一级是stdclass,因此您必须使用->来获取data数组。数据然后是一个数组,您可以使用[]访问其成员。

要获取您的account_id,您可以使用:

$account_id = $api_response->data['account_id'];

答案 2 :(得分:-1)

您有一个对象数组,因此您需要像对象一样访问它,对于数值,您需要使用{},否则您无法访问它。

$api_response->data->{0}->account_id; //1001147659

你也可以使用true中的json_decode作为第二个参数做同样的事情。如果您在那里执行此操作,您的数组将转换为关联数组,您可以像以下一样访问它:

$api_response['data'][0]['account_id']; //1001147659

两者都会产生相同的结果。