Développeur d'applications WEB
PHP

Les tableaux

Introduction

Un tableau est le moyen de désigner sous un même nom de variable plusieurs données de même type.
Pour se représenter une telle variable, on imagine que chaque valeur constituant le tableau est dans une case distincte.

$tab 
1854279
  0123456

Déclaration

Il n'est pas forcément nécessaire de déclarer un tableau, même si cette possibilité existe:
On peut utiliser la fonction array() pour déclarer et initialiser un tableau.
Le code suivant permettra de définir le tableau ci-dessus.
<?php
	$tab=array(1,8,5,4,2,7,9);
?>

Affectation

Chaque case du tableau peut-être vue comme une variable simple.
La seule différence réside dans l'utilisation de l'indice.
L'indice est repéré par des crochets.
<?php
	$tab=array(1,8,5,4,2,7,9);
	$tab[0]=17;
	AfficherTableau($tab);
?>
Dans l'exemple ci-dessus, on a modifié la valeur de la case d'indice 0 (la première) en l'affectant à 17.
17854279

Restitution

Là aussi, la seule différence par rapport à une variable simple réside dans l'utilisation de l'indice pour repérer l'élément que l'on souhaite atteindre.
L'exemple suivant propose deux utilisations:
  1. Affichage de l'élément d'indice 5
  2. Affectation de l'élément d'indice 2 dans une variable $valeur.
<?php
	echo $tab[5];
	$valeur=$tab[2];
?>

Les tableaux associatifs

PHP nous permet d'utiliser des tableaux associatifs.
La différence avec un tableau classique est que l'index n'est plus numérique, mais lui-même une variable string.

Par exemple, admettons que l'on veuille mémoriser dans un tableau des identifiants pour se connecter à un site Web.
On va avoir besoin de mémoriser:
On va donc construire le tableau:
<?php
	$membre=array();
	$membre['pseudo']='D@rkV@doR';
	$membre['pass']='123456';
	$membre['email']='lucien.dupont@free.fr';
?>
Nous avons dans un premier temps créé un tableau vide, puis nous avons ajouté des éléments.
Nous obtenons un tableau $membre qui contient:
D@rkV@doR123456lucien.dupont@free.fr
Nous utiliserons ces tableaux associatifs lorsque nous manipulerons des données issues de bases de données.

Tableau multi-dimensionnels

Dans les exemple précédents, tous les tableaux utilisés étaient à une dimension. C'est à dire que l'on peut les représenter sur une ligne.
On peut tout à fait utiliser d'autres dimensions: Par exemple, un tableau à deux dimensions est un tableau qui comportera plusieurs lignes et plusieurs colonnes.
Il est difficile de se représenter mentalement des tableaux ayant plus de 3 dimensions, mais il est tout à fait possible d'en implémenter sur un script PHP.
La seule limitation sera dans l'espace mémoire utilisé qui risque d'être vite saturé si l'on utilise un grand nombre de dimensions.

Si nous reprennons l'exemple précédent, on voit que le tableau que l'on avait créé ne permet de mémoriser qu'un membre.
On va créer un tableau $utilisateurs pour mémoriser plusieurs membres.
<?php
	$membre=array();
	$membre['pseudo']='D@rkV@doR';
	$membre['pass']='123456';
	$membre['email']='lucien.dupont@free.fr';
	$utilisateurs=array();
	$utilisateurs[0]=$membre;
	$membre['pseudo']='Kazer';
	$membre['pass']='SoZe';
	$membre['email']='n.martin@gmail.com';
	$utilisateurs[1]=$membre;
?>
Ce qui nous permet d'obtenir un tableau de la forme:
D@rkV@doR123456lucien.dupont@free.fr
KazerSoZen.martin@gmail.com

Manipulation de tableaux

Quelques fonctions utiles

Utilisation d'une boucle pour parcourir ou affecter les éléments d'un tableau

Affichage d'un tableau:

Le code ci-dessus est le code utilisé pour afficher les tableaux de la page en cours. Le style est défini dans un fichier CSS externe.
<?php
	$tab=array(1,8,5,4,2,7,9);
	$NbElements=count($tab);
	echo "<table><tr>";
	for ($i=0;$i<$NbElements;$i++)
	{
		echo "<td class='valeurs'>$tab[$i]</td>";
	}
	echo "</tr></table>";
?>

Affectation des éléments d'un tableau:

La boucle permet de parcourir tous les éléments du tableau.
On affecte à chacun une valeur aléatoire comprise entre 0 et 100 grâce à la fonction rand().
<?php
	for ($i=0;$i<50;$i++)
	{
		$tab[$i]=rand(0,100);
	}
?>

La fonction foreach()

Cette fonction est très pratique pour parcourir les tableaux associatifs.
For Each peut se traduire par "Pour chaque élément".
Cette fonction nous dispense de calculer le nombre d'éléments, elle va parcourir l'ensemble du tableau et on va retrouver les valeurs successives du tableau dans une variable que l'on aura indiqué.
Syntaxe
foreach ($NomTableau as $valeur)
{
	...
}

Exemple: Voici le code pour afficher le tableau à deux dimensions $utilisateurs:
<?php
	echo "<table>";
	foreach( $tab as $membre)
	{
		echo "<tr>";
		foreach( $membre as $value)
		{
			echo "<td class='valeurs'>$value</td>";
		}
		echo "</tr>";
	}
	echo "</table>";
?>

Puisqu'on utilise un tableau à 2 dimensions, il faut implanter 2 boucles.
La 1ière va nous permettre de parcourir le tableau $utilisateurs et à chaque tour de boucle, elle stockera dans la variable $membre une ligne du tableau $utilisateurs.
La 2ième va nous permettre de parcourir le tableau $membre et à chaque tour de boucle, elle stockera dans la variable $value une case du tableau $membre.