2014-01-19 76 views
0

我只是想顯示爲一個數組的API響應,但什麼是錯的,我並不覺得:如何將JSON API顯示爲數組?

API的答案:

{"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()'來循環)。 –