Tableaux et boucles [technologies du web]
Les Tableaux
Déclaration
$tableau= array();
Affectation
$marque[0]= "citroen";
$marque[1]= "peugeot";
$marque[] .= "renault"; // equivaut a $marque[2]= "renault"
Equivaut à :
$marque= array( "citroen", "peugeot", "renault" );
Fonctions relatives
sizeof
Renvoie le nombre d'éléments d'un tableau. équivalent de count
$taille= sizeof( $tableau );
is_array
Renvoie true si la variable est de type tableau (ou tableau associatif), false sinon.
reset
reset($tableau) place le pointeur interne sur le premier élément du tableau: Chaque variable tableau possède un pointeur interne repérant l'élément courant.
end
end($tableau) place le pointeur interne du tableau sur le dernier élément du tableau.
current
renvoie l'élément courant du tableau.
next
déplace le pointeur vers l'élément suivant, et renvoie cet élément. renvoie false si il n'existe pas
prev
déplace le pointeur vers l'élément précédent, et renvoie cet élément. renvoie false si il n'existe pas
each
$exemple=each($tableau) renvoie l'index et la valeur courante dans un tableau à 2 elements; $exemple[0] contient l'index, $exemple[1] la valeur.
list
list( $scalar1, $scalr2, ... ) construit un tableau temporaire à partir des variables scalaires passées en argument.
key
key($tableau) renvoie l'index de l'élément courant du tableau.
sort, rsort, usort, uasort
Differentes fonctions de tri de tableau.
sort trie par valeurs croissantes, rsort par valeurs décroissantes
$tableau_trie = sort( $tableau );
usort et uasort permettent au programmeur d'implémenter lui-meme la fonction de tri utilisée.
PHP appelle successivement La fonction doit retourner -1 / 0 / 1 suivant que le premier élément est inférieur / égal / supérieur au second.
Tableau associatif
Un tableau associatif est un tableau dont l'index est une chaine de caractère au lieu d'un nombre.
On parle aussi de ``hash array''. Déclaration:
$panier= array(); // comme un tableau
Affectation:
Affectons un nombre d'articles à notre panier:
$panier["Roses"]= 150;
$panier["Tulipes"]= 80;
$panier["Oeillets"]= 25;
Fonctions relatives :
isset
Pour tester l'existence d'un élément, on utilise la fonction isset()
if( isset( $panier["Roses"] ) ) {
echo "Le panier contient ". $panier['Roses'] . " Roses\n"; }
else{
echo "Pas de Roses dans le panier";
}
asort, arsort, ksort, aksort
Ces fonctions de tri conservent la relation entre l'index et la valeur, généralement le cas dans un tableau associatif.
asort trie par valeurs croissantes, arsort par valeurs décroissantes
ksort trie par index (key) croissantes
Boucles
Généralités:
L'instruction break permet de sortir d'une boucle à tout moment.
L'instruction continue permet de revenir au début de la boucle.
for( $i=0; $i < sizeof($tableau ); $i++ ) {
if( $tableau[$i] == 'encore' ) {
continue;
}
if( $tablo[$i] == 'fini' ) {
break;
}
echo $tableau[$i], "\n";
}
-> boucle for
for( [debut] ; [condition de fin] ; [faire a chaque fois] )
for( $i=0; $i < sizeof($tableau); $i++ ) {
echo "Ligne($i)= $tableau[$i] \n";
}
-> foreach
$panier[]='Roses';
$panier[].='Tulipes';
$panier[].='Oeillets';
foreach ($panier as $valeur){
echo" $valeur \n";
}
-->affichera :
Roses
Tulipes
Oeillets
-> Avec tableau multi-dimensionnel:
$panier=Array(Roses=>'15',Tulipes=>'32');
foreach ($panier as $cle=>$valeur){
echo"il y $valeur $cle \n";
}
--> Affichera :
il y a 15 Roses
il y a 32 Tulipes
-> boucle while
// parcours du tableau tant que l'élément n'est pas vide
$i=0;
while( isset( $tableau[$i]) ) {
echo "Ligne($i) = $tableau[$i] \n";
$i++;
}
->while (list...
$panier['roses']='125';
$panier['tulipes']='145';
while(list($cle,$val) = each($panier))
{
echo" il y a $val $cle
";
}
--> affichera :
il y a 125 roses
il y a 145 tulipes
-> boucle do .. while
La condition de sortie est située en fin de boucle.
Ainsi la boucle est parcourue une fois au minimum.
$fp= fopen( "monfichier.txt" );
do{
$ligne = fgets( $fp, 1024 );
...
} while( ! feof($fp) );
-> boucle SWITCH
Va vérifier une variable dans une liste de possibilité et termine par une ligne échapatoire.
//exemple : $variable == 'Mireille';
switch ($variable)
{
case Pierre : $parent = "mon frêre";
break;
case Mireille : $parent = "ma soeur";
break;
default : $parent ="pas de la famille";
break;
}
echo $parent;
//Affichera : ma soeur