Dépannage informatique à domicile NCT Micro
  Cliquez ici pour vous abonner à ce flux RSS  

I- Accéder à un élément individuel du tableau

La notation à crochets est utilisée pour accéder, en lecture ou en écriture, à un élément individuel du tableau
- $tableau[i] permet d'accéder à l'élément d'indice i du tableau (cas du tableau nuérique, i étant un entier)
- $tableau[x] permet d'accéder à l'élément de clé "x" du tableau (cas du tableau associatif, "x" étant une chaine)
- $tableau[] permet d'accéder, en écriture uniquement, à un nouvel élément du tableau qui se verra affecter un indice entier immédiatement supérieur au plus grand indice entier existant dans le tableau (0 s'il n'y en a pas)

Exemple:

<?php
$nombres = array("zéro","un","deux","trois",5 => "cinq","six","un" => 1,"sept",-1 => "moins un");
echo $nombres[1],"<br/>";
echo $nombres["un"],"<br/>";
$villes = array("FRANCE" => array("Paris","Lyon","Nantes"),"ITALIE" => array("Rome","Venise"));
echo $villes["FRANCE"][0],"<br/>";
echo $villes["ITALIE"][1],"<br/>";
?>

Résultat des commandes PHP:

un
1
Paris
Venise

Le principe de substitution des variables dans les chaine délimitées par des guillemets fonctionne avec les tableaux

Exemple:

<?php
$nombres = array("zéro","un","deux","trois",5 => "cinq","six","un" => 1,"sept",-1 => "moins un");
echo "\$nombres[1] = $nombres[1]<br/>";
echo "\$nombres[\"un\"] = $nombres[un]<br/>";
echo "\$nombres[\"un\"] = {$nombres['un']}<br/>";
$villes = array("FRANCE" => array("Paris","Lyon","Nantes"),"ITALIE" => array("Rome","Venise"));
echo "\$villes[\"FRANCE\"][0] = $villes[FRANCE][0]<br/>";
echo "\$villes[\"ITALIE\"][1] = $villes[ITALIE][1]<br/>";
?>

Résultat des commandes PHP:

$nombres[1] = un
$nombres["un"] = 1
$nombres["un"] = 1
$villes["FRANCE"][0] = Array[0]
$villes["FRANCE"][0] = Paris
$villes["ITALIE"][1] = Array[1]

II- Parcourir le tableau

De nombreuses méthodes peuvent être utilisées pour parcourir un tableau à l'aide des constructions suivantes:
- la structure de contrôle itérative for,
- la structure de contrôle itérative while,
- la structure de parcours de tableau foreach

FOREACH

Exemple:

<?php
//initialisation d'un tableau
$nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" => 2);
//parcours du tableau avec la première syntaxe
echo "Première syntaxe:<br/>";
foreach($nombres as $nombre) {
echo "$nombres<br/>";
}
//parcours du tableau avec la deuxième syntaxe
echo "Deuxième syntaxe:<br/>";
foreach($nombres as $clé => $ nombre) {
}
?>

Résultat de la commande PHP:

Première syntaxe:
zéro
un
deux
0
1
2
Deuxième syntaxe:
0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2

Affectation du contenu du tableau en modifiant une valeur dans celui-ci:

Exemple:

<?php
// initialisation d'un tableau
$nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" =>2);
// parcours du tableau pour le modifier (mauvaise méthode on modifie la variable de récupération de donnée du tableau)
foreach($nombres as $clé => $nombre) {
$nombre = "($nombre)", //mettre le nombre entre ()
}
// parcours du tableau pour l'afficher
echo "Résultat de la mauvaise méthode: <br/>";
foreach($nombres as $clé => $nombre) {
echo "$clé => $nombre <br/>";
}
// parcours du tableau pour le modifier (bonne méthode)
foreach($nombres as $clé => $nombre) {
$nombres[$clé] = "($nombre)"; //mettre le nombre entre ()
}
// parcours du tableau pour l'afficher
echo "Résultat de la bonne méthode: <br/>";
foreach($nombres as $clé => $nombre) {
echo "$clé => $nombre <br/>";
}
?>

Résultat de la commande PHP:

Résultat de la mauvaise méthode:
0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2
Résultat de la bonne méthode:
0 => (zéro)
1 => (un)
2 => (deux)
zéro => (0)
un => (1)
deux => (2)

WHILE

Exemple:

<?php
$nombres = array("zéro","un","deux","zéro" => 0,"un" => 1,"deux" =>2);
reset ($nombres); // ici le reset est important
while (list($clé,$nombre) = each($nombres)) {
echo "$clé => $nombre <br/>";
}
?>

Résultat de la commande PHP:

0 => zéro
1 => un
2 => deux
zéro => 0
un => 1
deux => 2

III- Fonctions utiles

Nom
Rôle
count Compte le nombre d'éléments dans un tableau
in_array Teste si une valeur est présente dans un tableau
array_search

Recherche une valeur dans un tableau

[a|k] [r] sort Trie un tableau (plusieurs variantes possibles)
explode Découpe une chaine selon un séparateur et stocke les éléments dans un tableau
implode Regroupe les éléments d'un tableau dans une chaîne à l'aide d'un séparateur
str_split Découpe une chaîne en morceaux de longueur fixe et stocke les éléments dans un tableau

COUNT
La fonction count permet de connaître le nombre d'éléments dans une variable en général, un tableau en particulier

Exemple:

<?php
echo "\$x variable non initialisé => ",count($x),"<br/>";
$x =1;
echo "\$x variable de type scalaire => ",count($x),"<br/>";
$x = array();
echo "\$x tableau vide => ",count($x),"<br/>";
$x = array(1,2);
echo "\$x tableau de 2 éléments => ",count($x),"<br/>";
?>

Résultat de la commande PHP:

$x variable non initialisé => 0
$x variable de type scalaire => 1
$x tableau vide => 0
$x tableau de 2 éléments => 2

IN_ARRAY
La fonction in_array permet de tester si une valeur est présente dans un tableau

Exemple:

<?php
$nombres = array("zéro","un","deux","zéro" =>0,"un" =>1,"deux" =>2);
echo '"un" type indifférent => ',var_dump(in_array("un",$nombres)),"<br/>";
echo '"un" même type => ',var_dump(in_array("un",$nombres,TRUE)),"<br/">;
echo '"trois" type indifférent => ',var_dump(in_array("trois",$nombres)),"<br/>";
echo '"trois" même type => ',var_dump(in_array("trois",$nombres,TRUE)),"<br/>";
echo '1 type indifférent => ',var_dump(in_array(1,$nombres)),"<br/>";
echo '1 même type => ',var_dump(in_array(1,$nombres,TRUE)),"<br/>";
echo '3 type indifférent => ',var_dump(in_array(3,$nombres)),"<br/>";
echo '3 même type => ',var_dump(in_array(3,$nombres,TRUE)),"<br/>";
echo '"un" type indifférent => ',var_dump(in_array("un",$nombres)),"<br/>";
echo '"un" même type => ',var_dump(in_array("un",$nombres,TRUE)),"<br/">;
?>

Résultat de la commande PHP:

"un" type indifférent => bool(true)
"un" même type => bool(true)
"trois" type indifférent => bool(true)
"trois" même type => bool(false)
1 type indifférent => bool(true)
1 même type => bool(true)
3 type indifférent => bool(false)
3 même type => bool(false)
"1" type indifférent => bool(true)
"1" même type => bool(false)

ARRAY_SEARCH
La fonction array_search permet de chercher un élément dans un tableau et de récupérer la clé de cet élément, s'il est présent

Exemple:

<?php
$nombres = array("zéro","un","deux","zéro" => 0,"un" =>1,"deux" => 2);
echo '"un" type indifférent => ', var_dump(array_search("un",$nombres)),"<br/>";
echo '"un" même type => ', var_dump(array_search("un",$nombres,TRUE)),"<br/>";
echo '"trois" type indifférent => ', var_dump(array_search("trois",$nombres)),"<br/>";
echo '"un" même type => ', var_dump(array_search("trois",$nombres,TRUE)),"<br/>";
echo '1 type indifférent => ', var_dump(array_search(1,$nombres)),"<br/>";
echo '1 même type => ', var_dump(array_search(1,$nombres)),"<br/>";
echo '3 type indifférent => ', var_dump(array_search(3,$nombres)),"<br/>";
echo '3 même type => ', var_dump(array_search(3,$nombres)),"<br/>";
echo '"1" type indifférent => ', var_dump(array_search("1",$nombres)),"<br/>";
echo '"1" même type => ', var_dump(array_search("1",$nombres,TRUE)),"<br/>";
?>

Résultat de la commande PHP:

"un" type indifférent => int(1)
"un" même type => int(1)
"trois" type indifférent => string(4) "zéro"
"un" même type => bool(false)
1 type indifférent => string(2) "un"
1 même type => string(2) "un"
3 type indifférent => bool(false)
3 même type => bool(false)
"1" type indifférent => string(2) "un"
"1" même type => bool(false)

[A|K][R] SORT
Les fonctions sort, rsort, asort, arsort, ksort et krsort permettent de trier un tableau selon différentes variantes

Avec

tableau Tableau à trier
indicateur Paramètre optionnel permettant de modifier le comportement du tri:
- SORT_REGULAR (valeur par défaut): compare les éléments normalement (ne modifie pas les types)
- SORT_NUMERIC : compare les éléments numériquement
- SORT_STRING: compare les éléments comme des chaines de caractères
- SORT_LOCALE_STRING: compare les éléménts en utilisant la configuration locale définie par la fonction SETLOCALE