2010-09-16 16 views
3

Mon tableau ressemble à ceci:question PHP à propos de tableau multidimensionnel

Array ([Bob] => Red [Joe] => Blue) 

Mais il pourrait être un certain nombre de personnes, comme ceci:

Array ([Bob] => Red [Joe] => Blue [Sam] => Orange [Carla] => Yellow) 

Fondamentalement, je veux PHP prendre ce tableau et écho afin qu'il vient à la recherche comme:

Bob - Red 
Joe - Blue 
Sam - Orange 
Carla - Yellow 

Je sais que je dois faire une boucle à travers le réseau, ce que j'ai essayé:

for ($row = 0; $row < count($array); $row++) { 
echo $array[0] . " - " . $array[1]; 
} 

Je reçois l'erreur suivante: Undefined offset: 0, Undefined offset: 1

Je me rends compte que cela ne fonctionne pas parce que je suis en train d'utiliser son index lorsque les valeurs du tableau sont des chaînes . Est-il possible que je peux utiliser des index de position comme ceci avec un tableau multidimensionnel qui contient seulement des chaînes?

Merci

+1

Je pense que c'est un tableau associatif, pas multidimensionnel ... –

Répondre

7

Ce que vous voulez est une boucle foreach.

foreach ($array as $key => $value) { 
    echo $key . ' - ' . $value; 
} 

(si vous voulez une nouvelle ligne, ajoutez "\n" à la fin)

Votre tableau est en fait pas multidimensionnelle. Un exemple de ce serait

array(
    array(
     'bob', 
     'tom' 
    ) 
); 

Notez le tableau au sein du tableau. Votre tableau est généralement appelé tableau associatif.

+0

Vous devriez probablement utiliser '\ n'. –

2

Sans revérifier ma connaissance de php:

foreach($array as $key => $value) { 
    echo "$key - $value<br />\n"; 
} 
+0

Vous devriez également utiliser '\ n'. –

+0

@ trop de php, il y a ça, oui. Merci! (édité.) –

1

Vous avez besoin d'un foreach

<?php 
$arr = array("bob" => "red", "paul" => "blue", "preo" => "yellow", "garis" => "orange"); 
foreach ($arr as $key => $value) { 
    echo $key ." - ".$value."<br />"; 
} 
?> 

imprimera:

bob - red 
paul - blue 
preo - yellow 
garis - orange 

Par ailleurs, il est un tableau associative, pas un multidimensional, qui est plus quelque chose comme:

$array[1][0][3] 
+0

Ah cela fonctionne magnifiquement. Merci pour votre réponse, pas étonnant que je ne pouvais pas trouver quelque chose qui fonctionnerait - j'ai continué à chercher multidimensionnelle – samJL