Afficher le contenu d'un tableau
On est très, très souvent (surtout
avec PHP qui en est très friand) amené à travailler
avec des tableaux. Et parfois, on aimerait bien savoir ce qu'il y a dans
tel ou tel tableau à un moment donné de l'exécution
de notre programme. Soit par curiosité, soit (et c'est plus fréquent
comme bonne raison) parce qu'on s'est lamentablement planté dans
notre programme. Heureusement, il existe plusieurs fonctions bien utiles. |
La fonction print_r() affiche le contenu
d'une variable en général. Lorsqu'il s'agit d'une bête
variable, elle affiche son contenu, tout bêtement, mais quand
il s'agit d'un tableau, elle affiche sous une forme plus ou moins lisible
le contenu de chaque poste du tableau avec ses indices ou ses clés
(les étiquettes des casiers, pour les tableaux associatifs). $JourSemaine = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche") ; La fonction print_r() appliquée à ce tableau s'écrit : print_r($JourSemaine) ; et donne le résultat suivant à l'écran : Array ( [Monday] => Lundi [Tuesday] => Mardi [Wednesday] => Mercredi [Thursday] => Jeudi [Friday] => Vendredi [Saturday] => Samedi [Sunday] => Dimanche ) "Array", en tête, signifie que c'est un tableau. Puis vous reconnaissez les clés (étiquettes des casiers) entre crochets, suivi du signe "=>" puis de la valeur contenue dans le poste correspondant à la clé du tableau. Pour un tableau indexé comme notre fameux "$MeubleClassique" qui est de la forme suivante : $MeubleClassique = array("Mozart", "Chopin", "Haendel", "Bach", "Lully", "Gounod", "Schubert", "Brahms", "Verdi", "Wagner") ; le résultat de l'instruction print_r($MeubleClassique) ; donne : Array ( [0] => Mozart [1] => Chopin [2] => Haendel [3] => Bach [4] => Lully [5] => Gounod [6] => Schubert [7] => Brahms [8] => Verdi [9] => Wagner ) Cette représentation n'est pas très lisible. Mais, si vous allez dans le code source de la page qui affiche ça à l'écran, vous avez une représentation beaucoup plus lisible et qui est : Array ( [0] => Mozart [1] => Chopin [2] => Haendel [3] => Bach [4] => Lully [5] => Gounod [6] => Schubert [7] => Brahms [8] => Verdi [9] => Wagner ) Déjà beaucoup plus exploitable pour nous, pauvres humains.
Une autre astuce consiste à inclure votre code PHP dans une page HTML et à encadrer votre instruction print_r($MeubleClassique) ; par les balises <pre> et </pre>. Votre programme devient alors : <html> <pre> et le résultat donne directement à l'écran (sans aller dans le code source de la page) : Array ( [0] => Mozart [1] => Chopin [2] => Haendel [3] => Bach [4] => Lully [5] => Gounod [6] => Schubert [7] => Brahms [8] => Verdi [9] => Wagner )
|
Sa syntaxe générale est de la forme : var_dump($UnTableau) ; C'est comme pour print_r(). Il suffit de mettre le nom du tableau dont on veut afficher le contenu à l'intérieur des parenthèses de la fonction. On dit que l'on "passe" le tableau en "argument" à la fonction. Par contre, le résultat est sensiblement différent. Si nous reprenons nos deux exemples des jours et des disques classiques, nous aurons respectivement pour les jours : var_dump($JourSemaine) ; qui donne comme résultat array(7) { ["Monday"]=> string(5) "Lundi" ["Tuesday"]=> string(5) "Mardi" ["Wednesday"]=> string(8) "Mercredi" ["Thursday"]=> string(5) "Jeudi" ["Friday"]=> string(8) "Vendredi" ["Saturday"]=> string(6) "Samedi" ["Sunday"]=> string(8) "Dimanche" } où vous voyez qu'il y a plus de renseignements sur chaque poste
du tableau. Ce sont : Pour notre fameux $MeubleClassique, l'instruction est var_dump($MeubleClassique) ; et donne le résultat : array(10) { [0]=> string(6) "Mozart" [1]=> string(6) "Chopin" [2]=> string(7) "Haendel" [3]=> string(4) "Bach" [4]=> string(5) "Lully" [5]=> string(6) "Gounod" [6]=> string(8) "Schubert" [7]=> string(6) "Brahms" [8]=> string(5) "Verdi" [9]=> string(6) "Wagner" } Là encore, les clés sont des valeurs numériques
entières. array(10) { [0]=> string(6) "Mozart" [1]=> string(6) "Chopin" [2]=> string(7) "Haendel" [3]=> string(4) "Bach" [4]=> string(5) "Lully" [5]=> string(6) "Gounod" [6]=> string(8) "Schubert" [7]=> string(6) "Brahms" [8]=> string(5) "Verdi" [9]=> string(6) "Wagner" } |
En fait, join() est ce que l'on appelle un "alias" de implode(). Ca veut dire que c'est la même chose. Deux expressions pour faire pareil quoi. Par contre, le résultat n'est pas tout à fait le même. La syntaxe générale est la suivante : implode("UnSeparateur", $UnTableau) ; Ces instructions n'affichent rien elles mêmes à l'écran. Il faut leur dire de s'afficher. On écrit, avec nos deux exemples : echo implode(", ", $JourSemaine) ; où ", " est le séparateur que l'on veut voir apparaître entre le contenu de chaque casier de notre tableau. DAns ce cas, ça donne comme résultat : Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi, Dimanche Avec l'autre tableau, on écrira : echo implode(", ", $MeubleClassique) ; et on obtiendra : Mozart, Chopin, Haendel, Bach, Lully, Gounod, Schubert, Brahms, Verdi, Wagner Vous voyez que c'est très dépouillé. On n'a que
les valeurs contenues dans chaque poste du tableau, sans autre précision.
echo implode("<br> ", $MeubleClassique) ; et le résultat est : Mozart Remplacer implode par join donne exactement le même résultat. Mais implode est plus PHP alors que join est aussi utilisé en JavaScript. |
Ce cours est enseigné par Philippe
Médan
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC
, 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée
Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01
40 40 36 27
au CESI à l'Ecole
des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX
Tél. : 01 45 36 70 00
© Philippe Médan 1999-2003. Tous droits de reproduction réservés pour tous pays.