我需要在多维数组上运行一个foreach脚本。
原始的JSON格式如下:
{
"_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循环来输出以下内容:
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发布于 2016-10-17 05:06:26
首先将json解码为数组,然后使用$key打印数组:
<?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中得到了这样的信息:
chatter_count:5461
moderators:
emilydk
fyzicul
hnl
hnlbot
ngmack
nixi93
psychostatik
sodapoppin
staystrong420
sxyhxy
tastyphone
staff:
evoli
pluto
...
...
...发布于 2016-10-17 05:08:16
你离你想要完成的事情只有几步之遥。要获得chatter_count,请使用$testobj ->chatter_count。然后循环遍历chatters数组,使用foreach($testobj->chatters as $key => $value) { // write your logic here }。这样你就能得到你想要达到的目标。我可以在这里粘贴代码,但我希望你先试一试。希望你现在能得到提示。
发布于 2016-10-17 05:08:31
$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
https://stackoverflow.com/questions/40078683
复制相似问题