2016-10-17 2 views
1

Ich muss ein Foreach-Skript auf einem mehrdimensionalen Array ausführen.Führen Sie eine PHP-Foreach-Schleife auf mehrdimensionalen Array

ist die ursprüngliche JSON formatiert wie:

{ 
    "_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" 
     ] 
    } 
} 

run Mit json_decode eine PHP-Datenstruktur zu bekommen, bin ich jetzt verloren, wie eine foreach-Schleife zur Ausgabe etwas wie laufen:

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 
+1

Was hast du bisher versucht? –

Antwort

3

Erste dekodieren die json auf Array, dann Verwendung von $key machen das Array drucken:

<?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"; 
    } 
} 
Ausgabe

:

ich so etwas wie dies von der URL, die Sie haben:

chatter_count:5461 

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

staff: 
evoli 
pluto 
... 
... 
... 
0

Sie sind nur wenige Schritte hinter dem, was Sie versuchen zu erreichen. Um chatter_count zu erhalten, verwenden Sie . Und dann durchlaufen Sie Ihre chatters Array verwenden foreach($testobj->chatters as $key => $value) { // write your logic here }. Auf diese Weise können Sie erreichen, was Sie erreichen möchten. Ich kann den Code hier einfügen, aber ich möchte, dass Sie es zuerst versuchen. Hoffe, du bekommst jetzt deine Hinweise.

0

PHP

$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"; 
} 

Demo: Eval.in

0

diesen Code Versuchen.
Und Sie müssen etwas Stil für den Druck hinzufügen.

$testobj = json_decode(file_get_contents("https://tmi.twitch.tv/group/user/sodapoppin/chatters")); 
print("chatter_count:", $testobj->chatter_count); 

foreach ($testobj->chatters as $key=>$chatter) 
{ 
print $key; 
foreach($chatter as $values){ 
printf("%s\n", $values); 
} 

}

diese Hoffnung hilft Ihnen.

Verwandte Themen