首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多维数组上运行php foreach循环。

在多维数组上运行php foreach循环。
EN

Stack Overflow用户
提问于 2016-10-17 04:51:23
回答 4查看 481关注 0票数 1

我需要在多维数组上运行一个foreach脚本。

原始的JSON格式如下:

代码语言:javascript
复制
{
    "_links":{

    },
    "chatter_count":15,
    "chatters":{
        "moderators":[
            "moderator1",
            "moderator2",
            "moderator3"
        ],
        "staff":[
            "staff1",
            "staff2",
            "staff3"
        ],
        "admins":[
            "admin1",
            "admin2",
            "admin3"
        ],
        "global_mods":[
            "global_mod1",
            "global_mod2",
            "global_mod3"
        ],
        "viewers":[
            "viewer1",
            "viewer2",
            "viewer3"
        ]
    }
}

在运行json_decode以获得PHP数据结构之后,我现在不知道如何运行foreach循环来输出以下内容:

代码语言:javascript
复制
chatter_count: 15 

moderators:
moderator1
moderator2
moderator3

staff:
staff1
staff2
staff3

admins:
admin1
admin2
admin3

global_mods:
global_mod1
global_mod2
global_mod3

viewers:
viewer1
viewer2
viewer3
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-10-17 05:06:26

首先将json解码为数组,然后使用$key打印数组:

代码语言:javascript
复制
<?php

$testobj = json_decode(file_get_contents('https://tmi.twitch.tv/group/user/sodapoppin/chatters'), true);

echo "chatter_count:".$testobj['chatter_count']."\n";

foreach($testobj['chatters'] as $key => $chatter){
    echo "\n$key:\n";
    foreach ($chatter as $value) {
        echo "$value\n";
    }
}

输出:

我从你给出的URL中得到了这样的信息:

代码语言:javascript
复制
chatter_count:5461

moderators:
emilydk
fyzicul
hnl
hnlbot
ngmack
nixi93
psychostatik
sodapoppin
staystrong420
sxyhxy
tastyphone

staff:
evoli
pluto
...
...
...
票数 3
EN

Stack Overflow用户

发布于 2016-10-17 05:08:16

你离你想要完成的事情只有几步之遥。要获得chatter_count,请使用$testobj ->chatter_count。然后循环遍历chatters数组,使用foreach($testobj->chatters as $key => $value) { // write your logic here }。这样你就能得到你想要达到的目标。我可以在这里粘贴代码,但我希望你先试一试。希望你现在能得到提示。

票数 0
EN

Stack Overflow用户

发布于 2016-10-17 05:08:31

代码语言:javascript
复制
$data = json_decode($json, true);
echo "chatter_count: " . $data["chatter_count"] . "\n";
foreach($data['chatters'] as $chattersK=> $chatters) {
  echo $chattersK . ":\n";
  foreach($chatters as $chatterK => $chatters) {
     echo $chatters . "\n";
  }
  echo "\n";
}

演示:Eval.in

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

https://stackoverflow.com/questions/40078683

复制
相关文章

相似问题

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