Médiaforma

PHP MySQL – Exercice sur les tableaux imbriqués

Print Friendly

Définissez le code PHP nécessaire pour afficher le tableau sur deux niveaux, comme ceci :

Quelques indices :

  • Vous devrez définir une fonction pour arriver à ce résultat
  • Pour tester si une des valeurs du tableau est un tableau, vous utiliserez la fonction is_array()

Solution

Faites une pause dans la vidéo pour vous permettre de saisir le code. Poursuivez la vidéo pour voir la solution.

Commencez par définir le tableau associatif chiffres, composé de deux tableaux associatifs : Romain et Arabe.

Pour afficher le contenu du tableau chiffres, le plus simple consiste à définir une fonction récursive, c’est-à-dire capable de s’appeler elle-même. Nous appellerons cette fonction affiche et nous lui transmettrons le tableau associatif chiffres.

Examinons le code de la fonction affiche().

La première instruction utilise une balise <blockquote&ht; pour indenter l’affichage vers la droite.

Le tableau passé à la fonction est alors parcouru.

La clé ainsi récupérée est affichée, suivi d’un espace, d’un ":" et d’un espace. Si la valeur est un tableau, la fonction affiche est appelée en lui transmettant ce tableau. Les éléments du tableau imbriqués seront donc lus et décales vers la droite grâce à la balise <blockquote>.

Si la valeur n’est pas un tableau, elle est simplement affichée, suivie d’un passage à la ligne.

La boucle foreach est suivie d’une balise </blockquote> pour mettre fin à l’indentation.

Accédez à la page localhost, déplacez-vous dans le dossier où a été enregistré le code et exécutez-le. Le résultat est bien conforme à ce qui était attendu

<?php

function affiche($a){

echo "<blockquote>";

foreach($a as $cle=>$valeur) {

echo $cle." : ";

if (is_array($valeur))

affiche($valeur);

else

echo $valeur."<br>";

}

echo "</blockquote>";

}

 

$chiffres = array("Romain" => array("un"=>"I", "deux"=>"II", "trois"=>"III", "quatre"=>"IV", "cinq"=>"V"),

"Arabe" => array("un"=>"1", "deux"=>"2", "trois"=>"3", "quatre"=>"4", "cinq"=>"5"));

affiche($chiffres);

?>

Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply