Tableaux PHP
Les tableaux - array - en PHP
Définition
Une variable de type tableau est définie grâce à la fonction array ou en utilisant une notation de type [] ou par une valeur associée par l'opérateur =>En php, un tableau (une matrice) est une liste d'éléments ordonnée de couple clé/valeur : Pour une clé de type entier, le tableau est dit numérique et la clé est désignée par le terme indice. Pour une cléde type chaîne, le tableau est dit associatif.
Exemple de création et de manipulation d'un array
<?php
$villes_france = array("Paris","Lyon","nantes");
$villes_italie = array("Rome","Florence");
$villes = array("France" => $villes_france, "Italie" => $villes_italie);
?>
<html><body>
<?php echo $villes["France"][1]; ?>
</body></html>
Exemple de stockage direct et de lecture avec la fonction foreach
<?php
$pays[0] = "Allemagne";
$pays[1] = "japon";
?>
<html><body>
<?php foreach($pays as $AffichagePays) {
echo $AffichagePays;
} ?>
</body></html>
Exemple de lecture d'un array avec la fonction for
<?php
for($i=0;$i < count($pays); $i++) {
echo $pays[$i]." ";
}
?>
Exemple de lecture d'un array avec la fonction implode
<?php
echo implode(", ", $pays) ;
?>
Exemple de lecture d'un array avec la fonction in_array
<?php
$pages_autorisees = array('bibi','baba','bobo');
$page = 'bubu';
if (in_array($page,$pages_autorisees)) { echo 'Bubu !'; }
else { echo "Pas bubu... snif, bouuuu..."; }
?>
Remplir un array dynamiquement
Syntaxe avec une boucle While<?php
$montableau = array();
while(macondition) {
$montableau[] = "Popompidou";
}
?>
Exemple concret de boucle While - Remplissage dynamique d'une matrice "$pages_autorisees"
<?php
$dossier = opendir("."); // Ouvrir le dossier courant
$i = 0;
while($fichier = readdir($dossier)) { // Tant que l'on peut lire des noms de fichiers
if ($fichier != ".." && $fichier != "") { // si les noms ne sont pas ".." et vide
$pages_autorisees[$i] = $fichier; // On stocke dans la matrice
$i++;
}
}
closedir($dossier); // On ferme le dossier
?>
Avec une boucle for
<?php
$taille_montab = 3;
$montab = array();
for($i=0;$i < $taille_montab;$i++) {
$montab[$i] = "Patali, patala";
}
?>
Fonctions utiles :
- count($pays) permet de compter le nombre d'élément dans un tableau.
- in_array("Japon", $pays) teste si une valeur est présente dans un tableau.
- array_search("Japon", $pays) permet de rechercher une valeur dans un tableau.
- explode(", ", $pays) permet de découper une chaîne selon un séparateur et de stocker les éléments dans un tableau.
- implode(", ", $pays) regroupe des éléments dans une chaîne à l'aide d'un séparateur.
- sort($pays) permet le tri croissant sur les valeurs d'un tableau (rsort pour décroissant).