CPI/BTS 2 Programmation Web Tableaux Prog Web CPI/BTS2 – M. Dravet – 16/10/2003 Dernière modification: 16/10/2003
Les Tableaux –En PHP les tableaux sont assimilables à des suites de couples de données –Dans un couple il y a (en général …) deux protagonistes … –Ici ce sont la clé et la valeur –La valeur peut très bien être un tableau.
Les Tableaux –Un tableau se définit avec la primitive array() –Array() prend en paramètres un certain nombres de couples clé => valeur séparés par des virgules array( [key =>] value, [key =>] value,... ) –La clé doit être un entier ou une chaîne –La valeur : n’importe quel type
Les Tableaux –Exemple d’utilisation n°1 <?php $tab = array("foo" => "bar", 12 => true); echo $tab["foo"]; // bar echo $tab[12]; // 1 ?>
Les Tableaux –Exemple d’utilisation n°2 <?php $tab = array(« AutreTab" => array(6 => 5, 13 => 9, "a" => 42) ); echo $tab["AutreTab"][6]; // 5 echo $tab["AutreTab"][13]; // 9 echo $tab["AutreTab"]["a"]; // 42 ?>
Les Tableaux –Ajout d’un élément à un tableau <?php $tab[key] = value; $tab[] = value; ?> –Si $tab n’existe pas il sera créé, –Si $tab[key] existe déjà sa valeur est remplacée, –Aucune obligation de spécifier la clé … Elle sera déterminée automatiquement sous forme d’entier.
Les Tableaux –La non spécification de la clé dans l’ajout d’une valeur entraîne l’assignation automatique d’une clé sous forme d’entier –Cet entier n’est pas choisi au hasard: c’est le successeur du plus grand entier servant déjà de clé dans le tableau –Si aucun entier ne sert déjà de clé, la valeur 0 est assignée. –Unset() sert à supprimer un couple { clé => valeur } d’un tableau –Unset() peut aussi supprimer tout le tableau.
Les Tableaux –Exemple d’utilisation n°3 <?php $tab = array(5 => 1, 12 => 2); $tab[] = 56; // Même effet que $arr[13] = 56; $tab["x"] = 42; // Ajout d’un nouvel élément à $tab, avec clé « x » unset($tab[5]); // Supprime l’élément à la clé 5 unset($tab); // Supprime tout le tableau ?>
Les Tableaux –Affichage d’un tableau La fonction print_r() permet d’afficher automatiquement tous les couples { clé => valeur } du tableau passé en paramètre <?php $tab = array(1, 2, 3, 4, 5); print_r($tab); ?> [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5
Les Tableaux –Parcours d’un tableau <?php $tab = array(1, 2, 3, 4, 5); // parcours du tableau //chaque itération assigne $i et $value avec clé/valeur foreach ($tab as $i => $value) { unset($tab[$i]); } print_r($tab); // n’affiche rien ?>
Les Tableaux –Parcours d’un tableau <?php $tab = array(1, 2, 3, 4, 5); // parcours du tableau //calcul de la taille du tableau $nb_elements = count($array); //affichage des valeurs du tableau for ($i = 0; $i < $nb_elements; $i++) { echo $tab[$i]. ‘ ’; } ?>
Les Tableaux –Arrangement d’un tableau <?php //Création du tableau $a = array(1 => 'one', 2 => 'two', 3 => 'three'); unset($a[2]); // Unset supprime $a[2] mais ne réarrange pas les clés // On retrouve un tableau qui aurait pu être défini comme ceci: // $a = array(1 => 'one', 3 => 'three'); // et non pas: $a = array(1 => 'one', 2 =>'three'); $b = array_values($a); // Maintenant b équivaut à: array(1 => 'one', 2 =>'three') ?>
Les Tableaux –Exercice Ecrire une page PHP qui remplit un tableau avec des valeurs aléatoires, puis trier le tableau avec un tri à bulles. NB: int rand( [int min, int max]); Ne pas utiliser les fonctions de tri de tableau intégrées à PHP.