Un tableau est un conteneur renfermant plusieurs valeurs. Chaque élément d'un tableau possède une valeur propre ainsi qu'une clé qui permet de faire référence à cet élément. Il existe deux types de tableaux : Les tableaux simples et les tableaux associatifs.
C'est un tableau dont les clés sont des entiers qui commencent toujours par zéro, exemple :
Tableau des couleurs :
- 0 : Blanc
- 1 : Rouge
- 2 : Vert
- 3 : Bleu
- 4 : Noir
La création d'un tableau en PHP se fait par la fonction array(). On peut ensuite afficher les valeurs du tableau une par une, ou bien afficher toutes les valeurs en utilisant une boucle (foreach, for, while…)
<?php
$tab_couleurs = array("Blanc","Rouge","Vert","Bleu","Noir");
// Afficher une valeur :
echo $tab_couleurs[2]."<br />"; // affiche : Vert
// Afficher toutes les valeurs :
foreach ($tab_couleurs as $couleur)
echo $couleur."-";
?>
On peut également créer un tableau vide, et affecter par la suite les valeurs manuellement :
<?php
$tab_couleurs = array();
$tab_couleurs[] = "Blanc";
$tab_couleurs[] = "Rouge";
$tab_couleurs[] = "Vert";
$tab_couleurs[] = "Bleu";
$tab_couleurs[] = "Noir";
?>
Cette technique est très utile quand on a besoin d'affecter les valeurs à un tableau selon une condition.
Exemple : construire un tableau des nombres pairs compris entre 0 et 10 :
<?php
$pairs = array();
for ($i=0;$i<=10;$i++){
if ($i%2 == 0)
$pairs[] = $i;
}
foreach ($pairs as $nbr)
echo $nbr."-";
?>
C'est un tableau qui contient des clés de type string (chaîne de caractères) :
Tableau pour stocker l'adresse d'une personne :
- nom : Bakali
- prenom : Karim
- rue : Victoria
- num : 22
- ville : Tétouan
Pour créer un tableau associatif en PHP, on utilise la même syntaxe en ajoutant la notation "=>" pour associer une clé à une valeur :
Création et affichage du tableau associatif :
<?php
$tab_adresse = array(
"nom"=>"Bakali",
"prenom"=>"Karim",
"rue"=>"Victoria",
"num"=>22,
"ville"=>"Tétouan"
);
// Afficher une valeur :
echo $tab_adresse['rue']."<hr />"; // affiche : Victoria
// Afficher toutes les valeurs :
foreach ($tab_adresse as $cle => $valeur)
echo $cle." : ".$valeur."<br />";
?>
Affectation des valeurs au tableau associatif :
<?php
$tab_adresse = array();
$tab_adresse['nom'] = "Bakali";
$tab_adresse['prenom'] = "Karim";
$tab_adresse['rue'] = "Victoria";
$tab_adresse['num'] = 22;
$tab_adresse['ville'] = "Tétouan";
foreach ($tab_adresse as $cle => $valeur)
echo $cle." : ".$valeur."<br />";
?>
Affiche les informations d'un tableau : print_r($tableau);
Retourne le nombre d'éléments d'un tableau : count($tableau);
Indique si une valeur existe dans un tableau, si la valeur est trouvée, la fonction retourne True, sinon elle retourne False : in_array($valeur,$tableau)
Trie les éléments d'un tableau en ordre croissant. Du plus petit au plus grand pour les valeurs numériques, et par ordre alphabétique pour les chaînes de caractères : sort($tableau);
Trie les éléments d'un tableau en ordre décroissant (du plus grand au plus petit) : rsort($tableau);
Rassemble les éléments d'un tableau en une chaîne de caractères en ajoutant entre les éléments un séparateur : $chaine = implode($separateur,$tableau);
Coupe une chaîne en segments selon un séparateur et retourne un tableau qui contient ces segments (l'inverse de la fonction implode) : $tableau = explode($separateur,$chaine);
Exemple d'utilisation de ces fonctions :
<?php
$tab_couleurs = array("Blanc","Rouge","Vert","Bleu","Noir");
echo "<hr />1. print_r :<br />";
echo "<pre>";
print_r($tab_couleurs);
echo "</pre>";
echo "<hr />2. count :<br />";
echo count($tab_couleurs); // affiche 5 (le nombre d'éléments)
echo "<hr />3. in_array :<br />";
if (in_array("Bleu",$tab_couleurs))
echo "Bleu trouvé";
else echo "Bleu non trouvé";
echo "<hr />4. sort :<br />";
sort($tab_couleurs);
echo "<pre>";
print_r($tab_couleurs);
echo "</pre>";
echo "<hr />5. rsort :<br />";
rsort($tab_couleurs);
echo "<pre>";
print_r($tab_couleurs);
echo "</pre>";
echo "<hr />6. implode :<br />";
$chaine = implode("-",$tab_couleurs);
echo $chaine;
echo "<hr />7. explode :<br />";
$chaine2 = "cette chaîne est divisée en segments, le séparateur est espace";
$tableau_chaine = explode(" ",$chaine2);
echo "<pre>";
print_r($tableau_chaine);
echo "</pre>";
?>