首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用一个数组索引访问重复的JSON参数- PHP、JSON和Twitch API

问仅使用一个数组索引访问重复的JSON参数- PHP、JSON和Twitch API
EN

Stack Overflow用户
提问于 2015-04-09 04:39:43
回答 1查看 78关注 0票数 0

我目前正在尝试从Twitch获取全球攻击性数据流的列表,因为这是我目前拥有的:

代码语言:javascript
复制
$getTwitchResponse = file_get_contents('https://api.twitch.tv/kraken/search/streams?q=global%20offensive&limit=2');

$twitchJSON = json_decode($getTwitchResponse, true);

然后我输出这些值,这些值效果很好!

代码语言:javascript
复制
echo '<p>' . $twitchJSON['streams'][0]['game'] . '</p>'; //Output Counter-Strike: Global Offensive
echo '<p>' . $twitchJSON['streams'][0]['viewers'] . '</p>'; //Output 156

JSON:

代码语言:javascript
复制
{  
       "_total":1357,
       "_links":{  
          "self":"https://api.twitch.tv/kraken/search/streams?limit=2&offset=0&q=global+offensive",
          "next":"https://api.twitch.tv/kraken/search/streams?limit=2&offset=2&q=global+offensive"
       },
       "streams":[  
          {  
             "_id":13921379424,
             "game":"Counter-Strike: Global Offensive",
             "viewers":156,
             "video_height":720,
             "average_fps":59.9445764054,
             "created_at":"2015-04-08T18:55:03Z",
             "preview":{  
                "small":"http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-80x45.jpg",
                "medium":"http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-320x180.jpg",
                "large":"http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-640x360.jpg",
                "template":"http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-{width}x{height}.jpg"
             },
             "_links":{  
                "self":"https://api.twitch.tv/kraken/streams/officialclickarn"
             },
             "channel":{  
                "mature":true,
                "status":"CSGOJACKPOT Global!",
                "broadcaster_language":"en",
                "display_name":"OfficialClickarn",
                "game":"Counter-Strike: Global Offensive",
                "delay":0,
                "language":"sv",
                "_id":43599835,
                "name":"officialclickarn",
                "created_at":"2013-05-16T16:14:12Z",
                "updated_at":"2015-04-08T19:19:23Z",
                "logo":"http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-profile_image-e05d99008ae2c4f6-300x300.jpeg",
                "banner":null,
                "video_banner":"http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-channel_offline_image-321549419f9a329c-640x360.png",
                "background":null,
                "profile_banner":"http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-profile_banner-93174220f0f0de42-480.jpeg",
                "profile_banner_background_color":null,
                "partner":true,
                "url":"http://www.twitch.tv/officialclickarn",
                "views":351062,
                "followers":21946,
                "_links":{  
                   "self":"https://api.twitch.tv/kraken/channels/officialclickarn",
                   "follows":"https://api.twitch.tv/kraken/channels/officialclickarn/follows",
                   "commercial":"https://api.twitch.tv/kraken/channels/officialclickarn/commercial",
                   "stream_key":"https://api.twitch.tv/kraken/channels/officialclickarn/stream_key",
                   "chat":"https://api.twitch.tv/kraken/chat/officialclickarn",
                   "features":"https://api.twitch.tv/kraken/channels/officialclickarn/features",
                   "subscriptions":"https://api.twitch.tv/kraken/channels/officialclickarn/subscriptions",
                   "editors":"https://api.twitch.tv/kraken/channels/officialclickarn/editors",
                   "teams":"https://api.twitch.tv/kraken/channels/officialclickarn/teams",
                   "videos":"https://api.twitch.tv/kraken/channels/officialclickarn/videos"
                }
             }
          },
          {  
             "_id":13921066304,
             "game":"Counter-Strike: Global Offensive",
             "viewers":82,
             "video_height":720,
             "average_fps":24.5031518625,
             "created_at":"2015-04-08T18:31:06Z",
             "preview":{  
                "small":"http://static-cdn.jtvnw.net/previews-ttv/live_user_adamsonshow-80x45.jpg",
                "medium":"http://static-cdn.jtvnw.net/previews-ttv/live_user_adamsonshow-320x180.jpg",
                "large":"http://static-cdn.jtvnw.net/previews-ttv/live_user_adamsonshow-640x360.jpg",
                "template":"http://static-cdn.jtvnw.net/previews-ttv/live_user_adamsonshow-{width}x{height}.jpg"
             },
             "_links":{  
                "self":"https://api.twitch.tv/kraken/streams/adamsonshow"
             },
             "channel":{  
                "mature":false,
                "status":"RUSSIAN GLOBAL",
                "broadcaster_language":"ru",
                "display_name":"AdamsonShow",
                "game":"Counter-Strike: Global Offensive",
                "delay":0,
                "language":"ru",
                "_id":64615054,
                "name":"adamsonshow",
                "created_at":"2014-06-18T16:54:31Z",
                "updated_at":"2015-04-08T19:20:06Z",
                "logo":"http://static-cdn.jtvnw.net/jtv_user_pictures/adamsonshow-profile_image-28d03af41050b43f-300x300.jpeg",
                "banner":null,
                "video_banner":"http://static-cdn.jtvnw.net/jtv_user_pictures/adamsonshow-channel_offline_image-08c0871dd106eab3-640x360.png",
                "background":null,
                "profile_banner":null,
                "profile_banner_background_color":null,
                "partner":false,
                "url":"http://www.twitch.tv/adamsonshow",
                "views":61383,
                "followers":8533,
                "_links":{  
                   "self":"https://api.twitch.tv/kraken/channels/adamsonshow",
                   "follows":"https://api.twitch.tv/kraken/channels/adamsonshow/follows",
                   "commercial":"https://api.twitch.tv/kraken/channels/adamsonshow/commercial",
                   "stream_key":"https://api.twitch.tv/kraken/channels/adamsonshow/stream_key",
                   "chat":"https://api.twitch.tv/kraken/chat/adamsonshow",
                   "features":"https://api.twitch.tv/kraken/channels/adamsonshow/features",
                   "subscriptions":"https://api.twitch.tv/kraken/channels/adamsonshow/subscriptions",
                   "editors":"https://api.twitch.tv/kraken/channels/adamsonshow/editors",
                   "teams":"https://api.twitch.tv/kraken/channels/adamsonshow/teams",
                   "videos":"https://api.twitch.tv/kraken/channels/adamsonshow/videos"
                }
             }
          }
       ]
    }

然而,问题是,因为在同一数组中有两个查看器实例,我如何访问它们的不同值?例如: viewers = 156,other viewers = 82。但是因为它们在同一个数组中,所以我只能访问第一个数组(156)。

我试着把索引改成1,但很明显这行不通,因为他们的索引是唯一的。那么,我如何访问它们的不同值:

例如:

代码语言:javascript
复制
echo '<p>' . $twitchJSON['streams'][0]['viewers'] . '</p>'; //Output 156
echo '<p>' . something here . '</p>'; //Output 82

使用‘print_r’更新:

代码语言:javascript
复制
Array ( [_total] => 1308 [_links] => Array ( [self] => https://api.twitch.tv/kraken/search/streams?limit=2&offset=0&q=global+offensive [next] => https://api.twitch.tv/kraken/search/streams?limit=2&offset=2&q=global+offensive ) [streams] => Array ( [0] => Array ( [_id] => 13919925600 [game] => Counter-Strike: Global Offensive [viewers] => 19815 [video_height] => 1080 [average_fps] => 49.9705473743 [created_at] => 2015-04-08T17:01:27Z [preview] => Array ( [small] => http://static-cdn.jtvnw.net/previews-ttv/live_user_sodapoppin-80x45.jpg [medium] => http://static-cdn.jtvnw.net/previews-ttv/live_user_sodapoppin-320x180.jpg [large] => http://static-cdn.jtvnw.net/previews-ttv/live_user_sodapoppin-640x360.jpg [template] => http://static-cdn.jtvnw.net/previews-ttv/live_user_sodapoppin-{width}x{height}.jpg ) [_links] => Array ( [self] => https://api.twitch.tv/kraken/streams/sodapoppin ) [channel] => Array ( [mature] => 1 [status] => Wasted Wed. #4(Rly drunk stream) Goooood morning world. @Sodapoppintv [broadcaster_language] => en [display_name] => sodapoppin [game] => Counter-Strike: Global Offensive [delay] => 0 [language] => en [_id] => 26301881 [name] => sodapoppin [created_at] => 2011-11-22T04:40:56Z [updated_at] => 2015-04-08T20:18:54Z [logo] => http://static-cdn.jtvnw.net/jtv_user_pictures/sodapoppin-profile_image-10049b6200f90c14-300x300.png [banner] => http://static-cdn.jtvnw.net/jtv_user_pictures/sodapoppin-channel_header_image-289c6a154aff2617-640x125.png [video_banner] => http://static-cdn.jtvnw.net/jtv_user_pictures/sodapoppin-channel_offline_image-86797668b8530080-640x360.jpeg [background] => [profile_banner] => http://static-cdn.jtvnw.net/jtv_user_pictures/sodapoppin-profile_banner-1c050aa5aed3558d-480.png [profile_banner_background_color] => [partner] => 1 [url] => http://www.twitch.tv/sodapoppin [views] => 87819543 [followers] => 735331 [_links] => Array ( [self] => https://api.twitch.tv/kraken/channels/sodapoppin [follows] => https://api.twitch.tv/kraken/channels/sodapoppin/follows [commercial] => https://api.twitch.tv/kraken/channels/sodapoppin/commercial [stream_key] => https://api.twitch.tv/kraken/channels/sodapoppin/stream_key [chat] => https://api.twitch.tv/kraken/chat/sodapoppin [features] => https://api.twitch.tv/kraken/channels/sodapoppin/features [subscriptions] => https://api.twitch.tv/kraken/channels/sodapoppin/subscriptions [editors] => https://api.twitch.tv/kraken/channels/sodapoppin/editors [teams] => https://api.twitch.tv/kraken/channels/sodapoppin/teams [videos] => https://api.twitch.tv/kraken/channels/sodapoppin/videos ) ) ) [1] => Array ( [_id] => 13921379424 [game] => Counter-Strike: Global Offensive [viewers] => 130 [video_height] => 720 [average_fps] => 59.9428904429 [created_at] => 2015-04-08T18:55:03Z [preview] => Array ( [small] => http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-80x45.jpg [medium] => http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-320x180.jpg [large] => http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-640x360.jpg [template] => http://static-cdn.jtvnw.net/previews-ttv/live_user_officialclickarn-{width}x{height}.jpg ) [_links] => Array ( [self] => https://api.twitch.tv/kraken/streams/officialclickarn ) [channel] => Array ( [mature] => 1 [status] => CSGOJACKPOT Global! [broadcaster_language] => en [display_name] => OfficialClickarn [game] => Counter-Strike: Global Offensive [delay] => 0 [language] => sv [_id] => 43599835 [name] => officialclickarn [created_at] => 2013-05-16T16:14:12Z [updated_at] => 2015-04-08T20:19:12Z [logo] => http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-profile_image-e05d99008ae2c4f6-300x300.jpeg [banner] => [video_banner] => http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-channel_offline_image-321549419f9a329c-640x360.png [background] => [profile_banner] => http://static-cdn.jtvnw.net/jtv_user_pictures/officialclickarn-profile_banner-93174220f0f0de42-480.jpeg [profile_banner_background_color] => [partner] => 1 [url] => http://www.twitch.tv/officialclickarn [views] => 351773 [followers] => 21963 [_links] => Array ( [self] => https://api.twitch.tv/kraken/channels/officialclickarn [follows] => https://api.twitch.tv/kraken/channels/officialclickarn/follows [commercial] => https://api.twitch.tv/kraken/channels/officialclickarn/commercial [stream_key] => https://api.twitch.tv/kraken/channels/officialclickarn/stream_key [chat] => https://api.twitch.tv/kraken/chat/officialclickarn [features] => https://api.twitch.tv/kraken/channels/officialclickarn/features [subscriptions] => https://api.twitch.tv/kraken/channels/officialclickarn/subscriptions [editors] => https://api.twitch.tv/kraken/channels/officialclickarn/editors [teams] => https://api.twitch.tv/kraken/channels/officialclickarn/teams [videos] => https://api.twitch.tv/kraken/channels/officialclickarn/videos ) ) ) ) )

任何帮助都将不胜感激!

基兰

EN

回答 1

Stack Overflow用户

发布于 2015-04-09 05:04:44

我找到答案了伙计们,

代码语言:javascript
复制
echo '<p>' . $twitchJSON['streams'][0]['viewers'] . '</p>';
echo '<p>' . $twitchJSON['streams'][1]['viewers'] . '</p>';

现在正在工作,由于某些原因,‘未定义的偏移’错误不再发生,我只是重新键入它,它与所需的输出工作!

感谢大家的帮助!

致以亲切的问候,

基兰

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29524925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档