Une introduction à PHP : Hypertext Preprocessor

Transcription

Une introduction à PHP : Hypertext Preprocessor
PHP : Hypertext Preprocessor
Tableaux Youssef CHAHIR
Les tableaux
•
•
$tableau[0] = 1; // on crée un tableau, et sa première valeur est 1
Pour un tableau à deux dimensions, il suffit de mettre un second indice au moment de l'affectation.
exemple :
• $tableau[0][0] = 1; // on crée un tableau, et sa première valeur est 1
• Il n'est pas obligatoire de préciser l'indice pour affecter une valeur.
exemple :
• $tableau[] = 1; // équivaut à $tableau[0] = 1;
• $tableau[] = 45; // équivaut à $tableau[1] = 45;
• $tableau[] = 6; // équivaut à $tableau[2] = 6;
• La déclaration et l’initialisation d'un tableau peuvent également se faire par l'intermédiaire de la fonction 'array()'. Cette fonction permet de préciser les indices ainsi que les valeurs du tableau (à l'aide de l'opérateur =>).
Tableaux à indices numériques
– $tableau[ ] = array(0=>1, 1=>45, 2=>6);
– $tableau[ ] = array("rouge"=>"red", "vert"=>"green", "bleu"=>"blue");
– $fromages[0] = "camembert";
– $fromages[1] = "reblochon";
– $fromages[2] = "comté"; – équivaut à : $fromages = array("camembert","reblochon","comté"
);
print "J'aime le ",$fromages[2];
Tableaux associatifs
– $menu["entree"] = "salade verte";
– $menu["plat"] = "couscous";
– $menu["desert"] = "banane";
– équivaut à : $menu = array(
"entree" => "salade verte",
"plat" => "couscous",
"desert" => "banane");
print "Le plat du jour est :", $menu["plat"];
Fonctions associées ­ 1 – is_array($tab)
– sizeof($tab) / count($tab)
– reset($tab)
–…
Fonctions associées ­ 2
– each() : renvoie l'indice et la valeur courante dans un tableau à deux éléments et se positionne sur la cellule suivante
– $a = each($tableau) : $a[0] contient l'indice et $a[1] contient la valeur
– list() : permet d'affecter les éléments dans des valeurs distinctes *
– La navigation dans les éléments du tableau s'effectue à l'aide des fonctions 'next()' , 'prev()' et 'each()'.
Fonctions each() et list()
$tableau = array("val1","val2","val3","val4"); //on crée un tableau avec 4 valeurs
reset ($tableau);
while ($var = each($tableau)) {
echo "$var[0] : $var[1]";
}
ou
reset ($tableau);
while (list($cle, $valeur)= each($tableau)) {
echo "$cle : $valeur";
}
Ce code produit le résultat suivant :
0 : val1
1 : val2
2 : val3
3 : val4
ici l'indice est affecté au premier élément de $var et la valeur au deuxième élément $var
Parcourir un tableau associatif * Fonctions each() et list()
Ces fonctions sont aussi étroitement liées aux boucles.
each(..)
Cette fonction permet de parcourir tous les éléments d'un tableau sans se soucier de ses bornes. Elle retourne la combinaison clé­valeur courante du tableau passé en paramètre, puis se positionne sur l'élément suivant, et cela du premier au dernier indice. Lorsque la fin du tableau est atteinte, each( ) retourne la valeur faux (false).
list(..)
Cette fonction est très souvent associée à la fonction each(), elle permet d'affecter les éléments du tableau dans des valeurs distinctes.
Parcourir un tableau à indices numériques ­ 2
$i = 0;
while ($i < sizeof($tableau)) {
echo $tableau[$i];
$i++;
}
for ($i = 0 ; $i < sizeof($tableau) ; $i++) {
echo $tableau[$i];
}
Parcourir un tableau à indices numériques ­ 3 Boucle foreach
Idéal pour parcourir des éléments de type tableau.
foreach ($Tableau as $Clef=>$Element){
// $Clef référence l'indice du tableau
// $Element référence la valeur de $Tableau[$Clef]
}
$Clef=> est facultatif
Manipulation des elts du tableau
• Indexation automatique de tableau :
array(5 => 43, 32, 56, "b" => 12); // Ce tableau est identique à Celui­ci
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
• Si vous omettez la clé ("$tableau[]"), la valeur sera ajoutée à la fin du tableau. $arr[key] = value; $arr[] = value;
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // Ceci revient à $arr[13] = 56;
$arr["x"] = 42; // Ceci ajoute un nouvel élément avec l'index "x"
unset($arr[5]); // Ceci efface un élément du tableau
unset($arr); // Ceci efface tout le tableau
<?php
$a = array(1 => 'un', 2 => 'deux', 3 => 'trois'); unset($a[2]);
?>
/* Cela va produire un tableau qui aurait été $a = array(1 => 'un', 3 => 'trois');
et non pas
$a = array(1 => 'un', 2 =>'trois');
*/
$b = array_values($a);
// Maintenant b est le tableau array(1 => 'un', 2 =>'trois')
Affichage <?php
// Crée un simple tableau
$array = array(1, 2, 3, 4, 5);
print_r($array);
// On efface tous les éléments, mais on laisse le tableau
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);
// On ajoute une valeur : notez que la nouvelle clé est 5
// et non pas 0, comme on l'attendrait.
$array[] = 6;
print_r($array);
// Re­indexation :
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
L'exemple va afficher :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( ) Array ( [5] => 6 ) Array ( [0] => 6
[1] => 7 )
Tableaux multi­dimensionnels
<?php
$fruits = array ( "fruits => array ( "a" => "orange",
"b" => "banane",
"c" => "pomme"
),
"nombre" => array ( 1,
2,
3,
4,
5,
6,
),
"trou" => array ( "premier",
5 => "second",
"troisième"
)
);
// Exemples d'utilisations des tableaux ci­dessus echo $fruits["trou"][5]; // affiche "second"
echo $fruits["fruits"]["a"]; // affiche "orange"
unset($fruits["trou"][0]); // supprime "premier"
// Créer un tableau multidimensionnel
$juices["pomme"]["vert"] = 'bon'; ?>
Tri • Deux tableaux exemple :
$pays = array("us","fr","ca");
$pays2 = array("us"=>"USA", "fr"=>"France", "ca"=>"Canada");
sort($pays): tri sur les valeurs ; les indices reflètent l'ordre modifié ­ tri inversé : rsort()
sort($pays2): tri sur les valeurs ; les clés (indices chaînes) sont remplacées par des indices numériques
asort($pays2): tri sur les valeurs ; pas de changement dans l'association clé/valeur ­ tri inversé : arsort()
ksort($pays2): tri sur les clés ­ tri inversé : krsort()

Documents pareils