2014-09-16 2 views
0

J'ai un tableau comme celui-ci:impression de tableau par clé Multidimensional

$games_array = array(

    "game-one-id" => array(
     array("name" => "Game One"), 
     array("url" => "game-one-url"), 
     array("asd" => "asdfg") 
), 

    "game-two-id" => array(
     array("name" => "Game Two"), 
     array("url" => "game-two-url"), 
     array("asd" => "asdfg") 
) 

); 

et je veux à la liste tous les jeux dans $games_array et imprimer certaines des propriétés de chaque jeu, par exemple son URL.

C'est ce que je suis venu avec, mais rien est imprimé:

foreach ($games_array as $game_id => $game_data) { 
    echo ' 
    <table><tr> 
    <td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . '</a></td> 
    </tr></table> 
    '; 
} 

Quelqu'un pourrait-il s'il vous plaît aidez-moi

+0

Pourquoi chaque entrée dans chaque tableau enveloppé dans son propre tableau '(..)'? Il suffit de se débarrasser de la couche de tableau superflue, alors ça va marcher. – deceze

+1

Contrôlez-vous la création de la matrice, car le format actuel n'est pas idéal. – Steve

+0

Oui, j'ai juste trouvé ce format et j'ai trouvé que c'était correct. Quel serait un meilleur format? –

Répondre

1

Cette boucle est liée à un tableau comme celui-ci

$games_array = array(

"game-one-id" => array(
    "name" => "Game One", 
    "url" => "game-one-url", 
    "asd" => "asdfg" 
), 

"game-two-id" => array(
    "name" => "Game Two", 
    "show_compatibility" => "game-two-url", 
    "asd" => "asdfg" 
) 

); 

Essayez! :)

-1

Il devrait ressembler à ceci:

foreach ($games_array as $game_id => $game_data) { 
    echo ' 
    <table><tr> 
    <td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data[0]["name"] . '</a></td> 
    </tr></table> 
    '; 
} 

Chaque tableau que vous avez spécifié comme un enfant jeu-un-id n'a pas de clé. Par défaut, il sera assorti d'une clé à partir de 0, et en augmentant de 1 à chaque fois. Je pense que vous feriez probablement plutôt comme ceci:

$games_array = array(

"game-one-id" => array("name" => "Game One","url" => "game-one-url","asd" => "asdfg") 

);

foreach ($games_array as $game_id => $game_data) { 
    echo ' 
    <table><tr> 
    <td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . ' - ' . $game_data["url"] . '</a></td> 
    </tr></table> 
    '; 
} 
0

Avec le $game_array que vous utilisez, vous devez utiliser:

foreach ($games_array as $game_id => $game_data) { 
    echo ' 
    <table><tr> 
    <td><a href="http://www.example.com/game/' . $game_data[1]["url"] . '/">' . $game_data[0]["name"] . '</a></td> 
    </tr></table> 
    '; 
} 



La variable $game_array devrait être:

$games_array = array(

    "game-one-id" => array(
     "name" => "Game One", 
     "url" => "game-one-url", 
     "asd" => "asdfg" 
), 

    "game-two-id" => array(
     "name" => "Game Two", 
     "show_compatibility" => "game-two-url", 
     "asd" => "asdfg" 
) 

); 

Si vous souhaitez utiliser:

foreach ($games_array as $game_id => $game_data) { 
    echo ' 
    <table><tr> 
    <td><a href="http://www.example.com/game/' . $game_data["url"] . '/">' . $game_data["name"] . '</a></td> 
    </tr></table> 
    '; 
} 
0

Essayez ceci sans changer le format de tableau.

<?php 
    $games_array = array(

     "game-one-id" => array(
      array("name" => "Game One"), 
      array("url" => "game-one-url"), 
      array("asd" => "asdfg") 
    ), 

     "game-two-id" => array(
      array("name" => "Game Two"), 
      array("url" => "game-two-url"), 
      array("asd" => "asdfg") 
    ) 

    ); 
    foreach ($games_array as $game_id => $game_data) { 
     //var_dump($game_data); 
     echo ' 
     <table><tr> 
     <td><a href="http://www.example.com/game/' . $game_data[1]["url"] . '/">' . $game_data[0]["name"] . '</a></td> 
     </tr></table> 
     '; 
    } 


    ?> 

Changer le format de tableau comme

$games_array = array(

"game-one-id" => array(
    "name" => "Game One", 
    "url" => "game-one-url", 
    "asd" => "asdfg" 
), 

"game-two-id" => array(
    "name" => "Game Two", 
    "show_compatibility" => "game-two-url", 
    "asd" => "asdfg" 
) 

);