2013-07-10 161 views
0

我正在使用bukkit JSONAPI和php JSONAPI.php獲取我的Minecraft服務器上的玩家列表到我的網站。爲了得到計數,我這樣做:PHP:從數組中獲得價值

require('JSONAPI.php'); // get this file at:  https://github.com/alecgorge/jsonapi/raw/master/sdk/php/JSONAPI.php 

$api = new JSONAPI("localhost", 20059, "user", "pass", "salt"); 

$limit = $api->call("getPlayerLimit"); 
$count = $api->call("getPlayerCount"); 

$c = curl_init($url); 
curl_setopt($c, CURLOPT_PORT, 20059); 
curl_setopt($c, CURLOPT_HEADER, false); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_TIMEOUT, 10); 
$result = curl_exec($c); 
curl_close($c); 
echo "<h5>Players online:</h5>"; 
$num= '' . $count['success'] . '/' . $limit['success']; 
echo $num; 

這將返回:1/40 於是,我試圖讓球員名單:

$list = $api->call('getPlayerNames'); 
echo $list; 

這只是返回:數組 然而,當我做

var_dump($api->call('getPlayerNames')); 

我得到:

array(3) { ["result"]=> string(7) "success" ["source"]=> string(14) "getPlayerNames" ["success"]=> array(1) { [0]=> string(8) "gauso001" } } 

但是,我想要的只是一個沒有額外的東西的球員名單。對不起,如果這是一個noob問題,我只知道很基本的PHP。

的東西,可能會幫助: 方法文檔:http://alecgorge.com/minecraft/jsonapi/apidocs/#package-JSONAPI%20standard 告訴我還有什麼..

謝謝你在前進,我希望我會爲你在PHP有一天,當好:d

+0

正如您在var_dump中顯示的那樣,api調用方法的返回值是一個包含三個元素的數組。你需要'成功'元素的內容,它看起來像一個數組。如果存在多個名稱,您尚未指定名稱的方式,但這可能會涉及遍歷返回的數組。 。 。向我們展示一些示例代碼,我們可以從那裏開始。 – ernie

回答

0

$api->call('getPlayerNames')返回一個命名數組,其中一個鍵(success)是另一個包含玩家名稱的數組。遍歷success鍵獲取玩家名單。

$players = $api->call('getPlayerNames'); 
foreach($players['success'] as $player) { 
    echo $player; 
} 
+0

完美!謝謝 – user2570264

1

奇怪的是,玩家的名字看起來像success鍵中的數組。

要訪問該球員的名字,你可以:

$list = $api->call('getPlayerNames'); 
// debug 
print_r($list['success']); 
// direct access 
echo $list['success'][0]; 
// loop 
foreach($list['success'] as $player) { 
    echo $player; 
} 

格式,以您的需求。但是這應該讓你開始。

備註:我也鼓勵您瞭解Arrays in PHP