2014-01-19 3 views
0

Я просто пытаюсь показать ответ API как Array, но что-то не так, и я не нахожу:Как отобразить API JSON как массив?

ответ АНИ в:

{"status":"OK","minecrafts":[{"id":411,"ip":"2452453","name":"EdenCraft","port":23,"ram":512,"leaf_id":1522,"ftp_password":"1231235312","subscription_end":"2014-02-06T19:56:29.000Z"}]} 

Мой PHP код:

<?php 
$url = "http://api.edenservers.fr/minecraft?user_id=id&api_key=key"; 
$data = file_get_contents($url); // Opening the Query URL 
$data = json_decode($data, true); // Decoding the obtained JSON data 
if(count($data) > 0) { 
    foreach($data as $rank => $donnees) { 
     echo "<u>" . $rank ."</u> : ". $rank; 
     echo "<br />"; 
    } 
} 
else { 
    echo "Rien n'a &eacute;t&eacute; trou&eacute;."; 
} 
?> 

И это то, что показал мне на панели управления:

status : status 

minecrafts : minecrafts 

Спасибо за вашу помощь !

ответ

1

Попробуйте

foreach($data as $key=>$val){ 
    if(is_array($val)){ 
     foreach($val[0] as $key1=>$val1){ 
      echo "<u>" . $key1 ."</u> : ". $val1; 
     } 
    }else{ 
      echo "<u>" . $key ."</u> : ". $val; 
    } 
} 
+0

Это работает! Благодаря ! –

0

Изменение:

echo "<u>" . $rank ."</u> : ". $rank 

к:

echo "<u>" . $rank ."</u> : ". print_r($donnees, TRUE) 

Или наоборот, если вы хотите, чтобы значения обращенных. Но проблема заключается в использовании $rank в обоих местах.

+0

Это то, что я получаю: http://grab.by/tExe –

+0

Похоже, это многомерный массив, поэтому '$ donnees' сам по себе еще массив вместо строки в некоторых случаях. Редактирование, которое я сделал выше, должно решить это, хотя вам придется его модифицировать (например, возможно, включая вложенный «foreach()» для его прокрутки) на основе того, как вы хотите форматировать вывод. –

Смежные вопросы