Menu des cours PHP
Ce langage représenté par un éléphant bleu est actuellement l'un des langages de programmation web les plus évolués. Le maitriser vous facilitra la vie et vous découvrirez en lui multiples applications pour votre site, de quoi le rendre vivant, dynamique et surtout simple de mise à jour dans un premier temps. Des variables aux pseudo-frames en passant par l'utilisation de formulaires, voici comment le découvrir...
Nous verrons ici plus précisemment la version 4 de PHP.

Les tableaux

Non, un tableau n'est pas un carré avec des cases pour trier des données ! Un tableau en programmation est une variable qui va en contenir plusieurs. Si on affecte un numéro à cette variable, elle va retourner une valeur différente. Mais quel est donc l'avantage d'une variable avec des numéros par rapport à tout simplement des variables complétement différentes ? C'est là que les boucles vont intervenir ! Dans le chapitre sur les boucles, nous avons vu que les boucles pouvaient "compter". Nous allons donc nous servir de cette fonction pour parcourir un tableau. Mais voyons déjà les différents types de tableaux.

Les tableaux associatifs :

Un tableau associatif est un tableau pour lequel vous avez vous-même directement définit les valeurs.

Exemple :
$flowers[] = "bad";
$flowers[] = "good";
$flowers[] = "beautiful";
$flowers[] = "ugly";


Représentation :
0 => bad
1 => good
2 => beautiful
3 => ugly


Les crochets qui suivent le nom de la variable $flowers indiquent à PHP qu'il s'agit d'une variable tableau. PHP stocke alors automatiquement les valeurs affectées au tableau dans des cellules consécutives numérotées à partir de $flowers[0].
Le symbole => indique qu'une valeur est associée à une clé. Dans ce cas, la valeur bad est associée à 0 et ainsi de suite.

Vous pouvez également écrire une affectation en pécisant la clé à laquelle vous voulez associer une valeur.

Exemple :
$flowers[0] = "bad";
$flowers[1] = "good";
$flowers[2] = "beautiful";
$flowers[] = "ugly";


Représentation :
0 => bad
1 => good
2 => beautiful
3 => ugly

Vous noterez que la dernière affectation ne comporte pas de valeur. PHP associe alors la valeur ugly à l'élément suivant du tableau (3).

Les éléments d'un tableau ne doivent pas nécessairement être associés à des clés consécutives.

Exemple :
$flowers[10] = "bad";
$flowers[20] = "good";
$flowers[30] = "beautiful";
$flowers[] = "ugly";


Représentation :
10 => bad
20 => good
30 => beautiful
31 => ugly

Mais un tableau associatif peut aussi se transformer en tableau indexé par chaîne. Plus concrètement, les valeurs sont des chaînes de caractères.

Exemple :
$flowers['red'] = "bad";
$flowers['blue'] = "good";
$flowers['green'] = "beautiful";
$flowers['yellow'] = "ugly";


Représentation :
red => bad
blue => good
green => beautiful
yellow => ugly

La fonction array() :

Hormis l'utilisation d'affectations, l'autre façon de créer un tableau PHP sonsite à employer la fonction array().

Exemple :
$flowers = array("bad", "good", "beautiful", "ugly");

Représentation :
0 => bad
1 => good
2 => beautiful
3 => ugly

Si vous voulez associer une valeur à une clé particulière, vous devez utiliser l'opérateur =>.
Exemple :
$flowers = array(10=>"bad", "good", "beautiful", "ugly");

Représentation :
10 => bad
11 => good
12 => beautiful
13 => ugly

On peut aussi indexer par chaînes.

Exemple :
$flowers = array("red"=>"bad", "blue"=>"good", "green"=>"beautiful", "yellow"=>"ugly");

Représentation :
red => bad
blue => good
green => beautiful
yellow => ugly

Parcourir un tableau :

Aprés avoir inséré des données dans un tableau, vous pouvez accéder ou modifier les valeurs des éléments par le biais de la clé associée.

Exemple :
<?php

$flowers[0] = "bad";
$flowers[1] = "good";
$flowers[2] = "beautiful";
$flowers[3] = "ugly";

echo "$flowers[0]<br> $flowers[1]<br> $flowers[2]<br> $flowers[3]";

?>


Résultat :
bad
good
beautiful
ugly

On peut donc les utliser dans n'importe quel cas.

Exemple :
<?php

$flowers[0] = "1";
$flowers[1] = "10";
$flowers[2] = "100";
$flowers[3] = "1000";

$y = 3 * $flowers[1];

echo($y);

?>


Résultat :
30

Parcourir un tableau séquentiel :

Un tableau dont les clés sont des entiers successifs est appellé tableau séquentiel.
Généralement, la plus petite valeur d'un tableau est zéro, mais il est posible de créer un tableau indexé à partir de un ou de toute autre valeur.

Si vous connaissz la valeur la plus petite du tableau, vous pouvez le parcourir à l'aide d'un boucle for (vue dans un précédent chapitre). Pour cela, vous devez initialiser la variable de boucle avec la valeur de la plus petite clé. Utilisez ensuite count() pour le test de fin de boucle. La fonction count() renvoi le nombre d'éléments d'un tableau.

Exemple :
<?php

$flowers = array(0=>"bad", 1=>"good", 2=>"beautiful", 3=>"ugly");
$limite = count($flowers);

for($i=0; $i<$limite; $i++) {
    echo "$i => $flowers[$i]<br>";
}

?>


Résultat :
0 => bad
1 => good
2 => beautiful
3 => ugly
Remarque :
Pour parcourir un tableau non séquentiel, PHP4 propose foreach. En voici sa syntaxe :
<?php
$flowers = array(12=>"bad", 71=>"good", 22=>"beautiful");
foreach($flowers as $cle => $valeur) {
    echo "$cle => $valeur<br>";
}
?>

Rechercher dans un tableau séquentiel

Pour comprendre l'intérêt d'un parcours de tableau, imaginez que vous deviez déterminer si une valeur particulière est présente ou non dans un tableau.

Exemple :
<?php

$flowers = array(0=>"bad", 1=>"good", 2=>"beautiful", 3=>"ugly");
$recherche = "beautiful";

$limite = count($flowers);

for($i=0; $i<$limite; $i++) {
    echo "Comparaison avec $flowers[$i]<br>";
    if($recherche == $flowers[$i]) {
       echo "My flowers are $recherche !<br>";
    }
}

?>


Résultat :
Comparaison avec bad
Comparaison avec good
Comparaison avec beautiful
My flowers are beautiful !
Comparaison avec ugly

Trier un tableau :

Le tri est une oprération réalisée fréquemment sur des tableaux. PHP fournit une série de fonctions afin de faciliter cette tâche. Voici plusieurs exemple qui mettent en pratique chacunes d'elles.

On supposera le tableau suivant :
$flowers = array(0=>"bad", 1=>"good", 2=>"beautiful", 3=>"ugly");


Trier par valeur croissante (nb de caractères)

Exemple :
sort($flowers);

Résultat :
0 => bad
1 => good
2 => ugly
3 => beautiful


Trier par valeur décroissante (nb de caractères)

Exemple :
rsort($flowers);

Résultat :
0 => beautiful
1 => ugly
2 => good
3 => bad


Trier par clé croissante

Exemple :
ksort($flowers);

Résultat :
0 => bad
1 => good
2 => beautiful
3 => ugly


Trier par clé décroissante

Exemple :
Krsort($flowers);

Résultat :
3 => ugly
2 => beautiful
1 => good
0 => bad
Remarque :
Pour faire une recherche non sensible à la casse (aucun différence entre majuscules et minuscules), une des solutions est d'utiliser netcasesort() qui triera le tableau dans l'ordre naturel :
$flowers = array(0=>"bad", 1=>"good", 2=>"beautiful", 3=>"ugly"); natcasesort($flowers);

Différentes fonctions :

next($flowers);
Avance d'une clé dans le tableau $flowers.

prev($flowers);
Recule d'une clé dans le tableau $flowers.

reset($flowers);
Réinitialise le tableau $flowers, le raméne à sa première clé.

current($flowers);
Retourne la valeur de l'élément courant du tableau $flowers.

$each = each($flowers);
Dans ce cas, $each[0] retournera la clé de l'élément courant du tableau $flowers et $each[1] retourne la valeur de son élément courant.
Remarque :
$each[0] correspond également à $each['key'] et $each[1] à $each['value'], il n'y a aucunes différences.
Les tableaux servent dans beaucoup de cas. La gestion de fichiers est aidée par les tableaux, c'est ce que nous verrons dans ce prochain chapitre.



<< Précédent - Sommaire - Suivant >>

Un problème ? Quelque chose que vous n'avez pas saisit ?
Posez vos questions sur les forums(+) !


Toute reproduction interdite - Intégralement écrits par le Webmaster
Valid XHTML 1.0! Valid CSS!
By JSAND [All right reserved] - Windows est une marque de Microsoft Corporation
Toute copie compléte comme partielle sans autorisation est passible d'amende - Avertissements