Echo многомерный массив

У меня есть многомерный массив списка игроков для Call of Duty 4. Когда я пытаюсь повторить массив, он возвращается с Array 30 раз, потому что на сервере 30 игроков.

Var_Dump of $ promodplist (Список игроков)

 array(27) { [0]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "26" ["nick"]=> string(10) "DIVINEBRAH" ["gq_name"]=> string(10) "DIVINEBRAH" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "26" } [1]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "35" ["nick"]=> string(7) "><> <><" ["gq_name"]=> string(7) "><> <><" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "35" } [2]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "42" ["nick"]=> string(10) "xXthe0neXx" ["gq_name"]=> string(10) "xXthe0neXx" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "42" } 

 $servers['promod'] = array('cod4', '67.202.102.224'); $servers['promod2'] = array('cod4', '67.202.102.224'); $gq = new GameQ(); $gq->addServers($servers); $results = $gq->requestData(); function print_results($results) { foreach ($results as $id => $data) 

И это то, что я пытаюсь использовать для перечисления текущих игроков.

 $promodplist = $data['promod']['players']; foreach($promodplist as $k => $v) 

Я просто хочу отозвать nick (ник) в каждом массиве.

Solutions Collecting From Web of "Echo многомерный массив"

 $promodplist = $data['promod']['players']; foreach($promodplist as $k => $v) print($v['nick']); 

Должен делать то, что вы хотите. foreach выполняет итерацию через пары ключ / значение в массиве, где $k – это ключ элемента (в вашем случае индекс 0), а $v – это значение (массив данных игрока для вас). Вы можете получить доступ к остальной информации, используя ее имя в качестве ключа в аксессуре массива .

Как насчет такой функции

 function print_results($results) { foreach ($results as $id){ echo ": Player Info :<br />"; foreach($id as $key => $val){ // add this line to only print out the "nick" field if ($key == "nick") echo "Field: " . $key . " - Value: " . $val . "<br />"; } } } 

Кроме того, форматирование массива помогает нам понять, с чем вы работаете; одна длинная строка гораздо сложнее расшифровать, чем:

 array(27) { [0]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "26" ["nick"]=> string(10) "DIVINEBRAH" ["gq_name"]=> string(10) "DIVINEBRAH" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "26" } [1]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "35" ["nick"]=> string(7) "><> <><" ["gq_name"]=> string(7) "><> <><" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "35" } [2]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "42" ["nick"]=> string(10) "xXthe0neXx" ["gq_name"]=> string(10) "xXthe0neXx" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "42" } [3]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "50" ["nick"]=> string(5) "GenKY" ["gq_name"]=> string(5) "GenKY" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "50" } [4]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "63" ["nick"]=> string(4) "dupe" ["gq_name"]=> string(4) "dupe" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "63" } [5]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "72" ["nick"]=> string(7) "B2B vcc" ["gq_name"]=> string(7) "B2B vcc" ["gq_score"]=> string(1) "0" ["gq_ping"]=> string(2) "72" } [6]=> array(6) { ["frags"]=> string(1) "0" ["ping"]=> string(2) "82" ["nick"]=> string(10) "[dB]tumble" ["gq_name"]=> string(10) "[dB]tumble" ["gq_score"]=> string(1) "0" } } 

Вот базовая функция, которую я использую для создания массивов из многомерных массивов.

 function db_result_array($result, $key_column = null) { for ($array = array(); $row = mysql_fetch_assoc($result); isset($row[$key_column]) ? $array[$row[$key_column]] = $row : $array[] = $row); return $array; } 

Вы делаете:

 $promodplist = $data['promod']['players']; foreach($promodplist as $k => $v) var_dump($promodplist); 

это означает, что вы выполняете тот же файл var_dump () 30 раз. Вам не нужен foreach () в вашем коде, это будет делать:

 $promodplist = $data['promod']['players']; var_dump($promodplist); 

В качестве отдельной заметки вы можете сделать следующее:

 $promodplist = $data['promod']['players']; echo "<pre>"; print_r($promodplist); echo "</pre>";