PHP/Tableaux
Les tableaux
[modifier | modifier le wikicode]Un tableau est une collection d'objet. En PHP, ces objets n'ont pas forcément le même type (cohabitation entre des entiers, des chaines…). Chaque objet est identifié par une clé (indice).
Tableau itératifs
[modifier | modifier le wikicode]Les clés du tableaux sont des nombres. Par défaut, le premier indice est 0.
$tab = array('val1', 'val2', 'val3'); // $tab[0] vaut val1 /-/ $tab[1] vaut val2 /-/ etc.
for($i = 0; $i<2; $i++)
echo $tab[$i];
Ce code affichera : val1val2.
En PHP, on peut aussi directement affecter des indices du tableau, comme suit :
Notez que les indices ne sont pas typés (on pourra indifféremment utiliser $tab[1] et $tab['1']).
Tableaux associatifs
[modifier | modifier le wikicode]Ils fonctionnent de la même manière que les tableaux itératifs, sauf que l'utilisateur en choisit la clé. À chaque clé correspond une valeur (injection).
Voici un exemple de déclaration :
$tab = array('cle1' => 'val1', 'cle2' => 'val2', 'cle3' => 'val3');
print $tab['cle2']; //affichera: val2
//parcours du tableau en boucle
foreach($tab as $key=>$value)
print $key." : ".$value.". ";
Résultat : cle1 : val1. cle2 : val2. cle3 : val3.
.
Pour ne garder que les valeurs on peut utiliser impode()
, qui convertit un tableau en chaine avec séparateur :
print implode(". ", $tab).". ";
Résultat : val1. val2. val3.
.
Fonctions usuelles sur les tableaux
[modifier | modifier le wikicode]- count : cette fonction renvoie le nombre d'éléments présent dans le tableau.
- current : affiche la valeur d’un élément de tableau.
- key : affiche la clé d’un élément de tableau.
Tableaux multi-dimensionnels
[modifier | modifier le wikicode]La clé d’un tableau peut pointer sur un second tableau créant ainsi un tableau multi-dimensionnel.
$indiv[] = array(
'nom' => 'Hubert',
'poste' => 'Gérant',
'Email' => 'hubert@test.com',
'idBureau' => 1
);
$indiv[] = array(
'nom' => 'Jean',
'poste' => 'Réceptionniste',
'Email' => 'reception@test.com',
'idBureau' => 1
);
$indiv[] = array(
'nom' => 'Amélie',
'poste' => 'Président',
'Email' => 'contact@test2.com',
'idBureau' => 2
);
$affBureau=1;
foreach($indiv as $no => $data)
{
if($data['idBureau']==$affBureau)
{
echo $no .'-'. $data['nom'] .' <i>'. $data['poste'] .'</i>: '. $data['Email'] .'<br />';
}
}
Résultat :
- 0-Hubert Gérant: hubert@test.com
- 1-Jean Réceptionniste: reception@test.com
- NB : Dans cet exemple, une base de données serait sûrement plus adéquate.