2013-10-10 14 views
0

상위 사이트를 만들고 다차원 배열의 특정 요소를 에코하는 것에 대한 질문이 있습니다. 나는 GameQ라는 라이브러리를 사용하여 게임 서버를 핑 (ping)하여 상기 서버의 통계를 수집하고 있습니다. 내가 지정한 배열의 특정 요소에서 결과를 인쇄 할 수 없습니다.다차원 배열의 특정 요소를 인쇄하십시오.

내 코드 :

 <?php 

    // Include the main class file 
    require '../GameQ.php'; 

    $gq = new GameQ(); 
    $gq->addServer(array(
     'id' => '0', 
     'type' => 'minecraft', 
     'host' => '192.210.238.76:25865', 
    )); 

    $results = $gq->requestData(); // Returns an array of results 

//Below line returns a error: Notice: Undefined offset: 0 
    echo "Online: " . $results[0]['numplayers'] . "/" . $results[0]['maxplayers'] . "<br />"; 

    var_dump($results); 

    ?> 

배열 바르 덤프 : 나는 Manual에서 배열의에 대한 설명서를 검토 한

 array (size=1) 
    '192.210.238.76:25865' => 
    array (size=17) 
     'hostname' => string 'A Whole Other Level' (length=19) 
     'gametype' => string 'SMP' (length=3) 
     'game_id' => string 'MINECRAFT' (length=9) 
     'version' => string '1.6.4' (length=5) 
     'plugins' => string 'CraftBukkit on Bukkit 1.6.4-R0.1-SNAPSHOT' (length=41) 
     'map' => string 'Build' (length=5) 
     'numplayers' => string '6' (length=1) 
     'maxplayers' => string '30' (length=2) 
     'hostport' => string '25865' (length=5) 
     'hostip' => string '192.210.238.76' (length=14) 
     'players' => 
     array (size=6) 
      0 => 
      array (size=1) 
       ... 
      1 => 
      array (size=1) 
       ... 
      2 => 
      array (size=1) 
       ... 
      3 => 
      array (size=1) 
       ... 
      4 => 
      array (size=1) 
       ... 
      5 => 
      array (size=1) 
       ... 
     'gq_online' => boolean true 
     'gq_address' => string '192.210.238.76' (length=14) 
     'gq_port' => string '25865' (length=5) 
     'gq_protocol' => string 'gamespy3' (length=8) 
     'gq_type' => string 'minecraft' (length=9) 
     'gq_transport' => string 'udp' (length=3) 

. 이 주제에 대한 도움을 주시면 감사하겠습니다. 나는 뭔가를 놓친다는 것을 안다. 나는이 질문에 등록하기 전에 먼저 답을 찾으려고 노력했다. 결과를 찾는 것이 누군가 나를 기다리는 것보다 빠를 것이라고 생각합니다. 환자 분들과 귀하의 이해에 감사드립니다. 해피 코딩!

답변

0

핵심 0이 아마 변수로서

$results['192.210.238.76:25865']['numplayers'] 

편집

로 시도, 배열에 존재하지 않는, 당신은 배열이 수정하지 않고 배열의 첫 번째 요소를 가져올 수 있습니다 방법 :

$firstValue = array_shift(array_values($results)); //the array which is the first value 

$numplayers = $firstValue['numplayers']; 

라인 this post

,536,913에서 발견
+0

고마워요! 바로 그걸 고쳤어. 전에 IP를 추가하려했지만 '및'을 잊어 버렸습니다. 도와 주셔서 감사합니다! – unenergizer

+0

당신을 진심으로 환영합니다! – Johnride

관련 문제