2010-11-10 27 views
1

我有一个数组,我想从中获取某些信息并使用php/html(即游戏,编号,评级)输出它。尽管我只从输出中的第一个数组中获取信息,但我已经完成了基础知识。我知道循环是我需要做的,尽管我不确定如何一次返回多个记录。一个数组中的某些信息可能不在另一个数组中,因为您可以看到第一个数组中没有[info]。循环通过多维数组和打印

这里是我的代码:

<?php 

$review = $developer->api('/source'); 

    function d($d){ 
     echo '<pre>'; 
     print_r($d); 
     echo '</pre>'; 
    } 

    d($review[data][0][game]); 
    d($review[data][0][game][rating]); 
?> 

这是输出:

Array([data] => Array ([0] => Array ([id] => 2010_1110 [from] => Array ([name] => Pebkac [id] => 11001010 ) [game] => Array ([id] => 2112 [name] => New Game [rating] => Array ([action] => 9 [graphics] => 10)) [comments] => Array ([data] => Array ([0] => Array ([id] => 2010_1111 [from] => Array ([name] => My Friend [id] => 10100110) [message] => hi there. [created_time] => 8:00 P.M.))))) 

[paging] => Array ([previous] => url1 [next] => url2)) 

Array([data] => Array ([1] => Array ([id] => 2010_1112 [from] => Array ([name] => Pebkac [id] => 11001010 ) [game] => Array ([id] => 5050 [name] => Another Game [rating] => Array ([action] => 8 [graphics] => 8)) [info] => [created_time] => 8:59 P.M. [owns] => Array ([data] => Array ([0] => Array ([id] => 20100112 [name] => Friend Two))) [comments] => Array ([data] => Array ([0] => Array ([id] => 2010_1113 [from] => Array ([name] => My Friend [id] => 10100110) [message] => hi there. [created_time] => 9:00 P.M.))))) 
+0

http://stackoverflow.com/questions/16141590/printing-a-multi-dimensional-array-in-table-using-for-loop – 2016-04-13 07:31:54

回答

0

如果我正确理解你的问题,你需要的是一个foreach循环,它无关,与多维。

+0

是的,但请看看生数组的输出 - 这是一个多维数组,我需要循环,我正在问怎么做。谢谢! – 2010-11-10 08:30:32

4

根据你想要做什么,你可以做一个嵌套for循环,或者如果你有n个维度,你可以递归调用你的函数,直到结果不再是一个数组。事情是这样的:

function printNode($node) { 
    foreach ($node as $nodeKey => $nodeValue) { 
     if (is_array($nodeValue)) { 
      printNode($nodeValue); 
     } else { 
      print $nodeValue; 
     } 
    } 
} 
+0

嗨,我把你的代码放在那里,它输出所有卡在一起的东西。我如何指定一两件东西来拉出和打印?谢谢! – 2010-11-10 08:40:09

+0

@Larry Pebkac:如果它与您想要打印的某个键匹配,您可以检查'$ nodeValue'。 – 2010-11-10 08:56:56

+0

我试过了:if(array_key_exists('name',$ review)){echo“Found”; } - 它变成空的。我不确定我做错了什么? – 2010-11-10 12:15:10