Académique Documents
Professionnel Documents
Culture Documents
Déclaration de tableau
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
echo $villes;
?>
Résultat
Array
Il existe plusieurs méthodes pour afficher les valeurs d'un tableau. Commençons par la
méthode la plus simple. Conservons le même exemple que précédemment, à savoir un tableau
numéroté. Chaque valeur possède une clé unique. Avec la syntaxe ci-dessous, on peut donc
afficher la valeur d'une clé précise.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
echo $villes[0].' - '.$villes[1].' - '.$villes[2];
?>
Résultat
La boucle foreach permet de parcourir simplement les tableaux. Elle ne fonctionne d'ailleurs
qu'avec ce type de variable. Il existe deux syntaxes pour cette boucle.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
foreach($villes as $key => $ville) {
echo $ville.' a la clé '.$key.'<br />';
}
?>
Résultat
Fontainebleau a la clé 0
Paris a la clé 1
Lyon a la clé 2
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
foreach($villes as $key => $ville) :
echo $ville.' a la clé '.$key.'<br />';
endforeach;
?>
Résultat
Fontainebleau a la clé 0
Paris a la clé 1
Lyon a la clé 2
La boucle foreach permet de parcourir simplement les tableaux. Elle ne fonctionne d'ailleurs
qu'avec ce type de variable. Il existe deux syntaxes pour cette boucle.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
for($i=0 ; $i < cout($villes) ; $i++) {
echo $i.' a la clé '. $villes[$i].'<br />';
}
?>
Résultat
Fontainebleau a la clé 0
Paris a la clé 1
Lyon a la clé 2
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
foreach($villes as $key => $ville) :
echo $ville.' a la clé '.$key.'<br />';
endforeach;
?>
Résultat
Fontainebleau a la clé 0
Paris a la clé 1
Lyon a la clé 2
Nous avons pour le moment uniquement travaillé avec des tableaux numérotés. Les clés
étaient numériques. Il existe un autre type de tableau où les clés sont des chaînes de
caractères. On parle alors de tableau associatif et en anglais de associative array. Il y a deux
solutions pour créer un tableau associatif.
<?php
$villes = array(
'Fontainebleau' => 77,
'Paris' => 75,
'Lyon' => 69
);
?>
<?php
$villes['Fontainebleau'] = 77;
$villes['Paris'] = 75;
$villes['Lyon'] = 69;
?>
Comme plus tôt dans le chapitre, nous pouvons également matérialiser le tableau associatif.
Clé Valeur
Fontainebleau 77
Paris 75
Lyon 69
3. Modifier un tableau
Vous êtes désormais en mesure de créer un tableau numéroté ou associatif. Dans cette partie,
nous allons aborder la modification d'un tableau : ajout, modification et suppression.
Modifier un élément
Votre tableau est créé et vous souhaitez modifier un élément ? Pour un tableau numéroté ou
associatif, la méthode est la même. Il suffit de suivre la syntaxe décrite dans les exemples ci-
dessous.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
$villes[0] = 'Melun';
var_dump($villes);
?>
Résultat
array(3) { [0]=> string(5) "Melun" [1]=> string(5) "Paris" [2]=> string(4) "Lyon" }
<?php
$villes = array('Fontainebleau' => 77, 'Paris' => 75, 'Lyon' => 69);
$villes['Fontainebleau'] = 'Seine-et-Marne';
var_dump($villes);
?>
Résultat
["Paris"]=> int(75)
["Lyon"]=> int(69) }
4. Ajouter un élément
Votre tableau est créé et vous souhaitez ajouter un élément supplémentaire ? Première
solution, ajouter l'élément avec une clé précise dans le tableau.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
$villes[9] = 'Nantes';
var_dump($villes);
?>
Résultat
array(4) { [0]=> string(13) "Fontainebleau" [1]=> string(5) "Paris" [2]=> string(4) "Lyon" [9]=> string(6)
"Nantes" }
<?php
$villes = array('Fontainebleau' => 77, 'Paris' => 75, 'Lyon' => 69);
$villes['Nantes'] = 44;
var_dump($villes);
?>
Résultat
["Paris"]=> int(75)
["Lyon"]=> int(69)
["Nantes"]=> int(44) }
Dans les deux exemples, nous avons inséré le nouvel élément avec la clé que nous
souhaitions. Ce n'est pas toujours ce que l'on souhaite. En effet, nous ne connaissons pas
toujours la taille du tableau et nous pouvons aisément écraser une clé et une valeur déjà
existante. Il existe donc un raccourci qui ajoute automatiquement une valeur avec une clé
libre. Ce raccourci ajoute l'élément à la fin du tableau et cherche la plus petite clé numérique
possible libre pour ajouter la valeur. Exemple :
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
$villes[] = 'Nantes';
var_dump($villes);
?>
Résultat
Dans l'exemple avec le tableau numéroté, la plus petite valeur possible à la fin du tableau est
3, car les clés 0, 1 et 2 sont déjà prises. Dans l'exemple avec le tableau associatif, le cas est un
peu différent. En effet, le raccourci n'ajoute pas une chaîne de caractères aléatoires comme
clé, mais cherche la clé numérique la plus petite possible de libre. En l'occurence, la clé 0 est
disponible.
5. Supprimer un élément
Pour différentes raisons, on peut être amené à supprimer un élément d'un tableau. La
fonction à utiliser pour cette action est unset(). Elle est très simple à utiliser. Elle permet
également de supprimer complètement une variable.
<?php
$villes = array('Fontainebleau' => 77, 'Paris' => 75, 'Lyon' => 69);
$villes['Nantes'] = 44;
unset($villes['Paris']);
var_dump($villes);
?>
Résultat
Il peut être utile de compter le nombre d'éléments que contient un tableau. Pour répondre à ce
besoin, il existe une fonction qui porte très bien son nom, count(). Elle s'utilise de la
manière suivante :
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
$n_villes = count($villes);
echo 'Il y a '.$n_villes.' éléments dans le tableau $villes.';
?>
Résultat
La fonction in_array() permet de vérifier si une valeur existe dans une variable de type
array, un tableau. Elle retourne TRUE si c'est le cas, et FALSE dans le cas inverse.
<?php
$villes = array('Fontainebleau', 'Paris', 'Lyon');
$ville_recherche = 'Paris';
if(in_array($ville_recherche, $villes)) :
echo 'Oui, la clé '.$ville_recherche.' existe dans le tableau
$villes.';
else :
echo 'Non, la clé '.$ville_recherche.' n\'existe pas dans le tableau
$villes.';
endif;
?>
Résultat
La fonction array_key_exists() permet de vérifier si une clé existe dans un tableau. Elle
retourne TRUE si c'est le cas, et FALSE dans le cas inverse.
<?php
$villes = array(
'Fontainebleau' => 77,
'Paris' => 75,
'Lyon' => 69
);
$ville_recherche = 'Marseille';
if(array_key_exists($ville_recherche, $villes)) :
echo 'Oui, la clé '.$ville_recherche.' existe dans le tableau
$villes.';
else :
echo 'Non, la clé '.$ville_recherche.' n\'existe pas dans le tableau
$villes.';
endif;
?>
Résultat
Exemples:
<?php
$tab=array("PHP","Coté client",60);
echo count($tab); // Affiche: 3
if(in_array("PHP",$tab))
echo "Existe";
else
echo "N'existe pas";
// Affiche: Existe
list($a,$b,$c)=$tab;
echo "$a - $b - $c"; // Affiche: PHP - Coté client - 60
$str="Bonjour";
$tab=explode("o",$str);
echo implode("*",$tab); // Affiche: B*nj*ur
?>