2010-11-10 7 views
1

J'ai un tableau dont j'aimerais extraire certaines informations et les sortir en utilisant php/html (c'est-à-dire game, id, rating). J'ai les bases bas, bien que j'obtienne seulement l'information du premier tableau dans la sortie. Je sais que la boucle est ce que je dois faire, bien que je ne sache pas exactement comment retourner plus d'un enregistrement à la fois. Certaines des informations contenues dans un tableau peuvent ne pas être dans l'autre, comme vous pouvez le voir, il n'y a pas de [info] dans le premier.Boucle dans la matrice multidimensionnelle et Impression

Voici mon code:

<?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]); 
?> 

Ceci est la sortie:

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 –

Répondre

0

Si je comprends bien votre question, tout ce que vous avez besoin est une boucle foreach et il n'a rien à voir avec multi dimensionnalité.

+0

Oui, mais s'il vous plaît regarder l'état brut sortie du tableau - c'est un tableau multidimensionnel que je dois faire défiler, et je demande comment le faire. Merci! –

4

En fonction de ce que vous voulez faire, vous pouvez faire une boucle imbriquée ou si vous avez n nombre de dimensions, vous pouvez appeler récursivement votre fonction jusqu'à ce que le résultat ne soit plus un tableau. Quelque chose comme ceci:

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

Salut, je mets ton code dedans et ça sort tout ce qui est coincé ensemble. Comment puis-je spécifier une ou deux choses à retirer et à imprimer? Merci! –

+0

@Larry Pebkac: Vous pouvez vérifier '$ nodeValue' s'il correspond à l'une des clés que vous voulez imprimer. –

+0

J'ai essayé: if (array_key_exists ('nom', $ review)) {echo "Trouvé"; } - et il apparaît vide. Je ne suis pas sûr de ce que je fais mal? –