Les tableaux

Généralités :

  • On ne doit pas déclarer leur taille au prélable

  • Deux types de tableau :
    • Les tableaux indexés numériquement

    Ce sont les tableaux classiques, que l’on connaît en programmation. Le mot-clef pour les créer est array(). On peut accéder à chaque élément par son index, qui commence à zéro.

    • Les tableaux associatifs
  • Les tableaux multidimensionnels

Les tableaux, en programmation, sont le moyen de grouper des données.

Les tableaux indexés numériquement :

Création :

$tab = array(valeur0, valeur1, valeurn);

/**
* Depuis PHP 5.4
*/

$tab = [valeur0, valeur1, valeurn]; // c'est cette nomenclature que nous utiliserons.

Accès :

//$nomTableau[index]
$tab[0];
$tab[3];

Exemple :

<?php
$tableau = [2, 4, 6, 8, "chien", 'chat', 10];

echo $tableau[0];
echo $tableau[4];
$tableau[4] = "toto";
echo $tableau[4];

Remarque : Il existe une syntaxe réduite pour ajouter un à un les éléments sans avoir à manipuler les index.

<?php
$tableau = [2, 4, 6];
$tableau[0] = 2; $tableau[1] = 4; $tableau[2] = 6;
$tableau[] = 2; $tableau[] = 4; $tableau[] = 6;

Il suffit d’omettre l’index, mais en laissant les crochets. Ces trois codes sont équivalements :

Les tableaux associatifs :

  • Les « index » sont des clefs alphanumériques
  • L’opérateur entre l’élément et sa clef est « => »

Création :

$tab = [clef0 => valeur0,clef1 => valeur1,clef2 => valeurn]; // c'est cette nomenclature que nous utiliserons.

Accès :

//$nomTableau[index]
$tab[clef2];
$tab[clef1];

Exemple

<?php

$livre = [
		"titre" => "Le Banquet",
		"auteur" => 'Platon',
		"origine" => "Grèce",
		"type" => "philosophie"
		];
		
echo "L'ouvrage est de " . $livre['auteur'] . "<br>";
echo "et s'intitule : " . $livre["titre"];
echo "<hr>";

Les tableaux multidimensionnels :

  • Matrice au sens mathématique
  • Tableaux de tableaux
  • Création : $nomTableau = array( array(valeur,valeur), array(valeur,valeur)…);
  • Accès : $nomTableau[ligne][colonne]
  • Peut être de N dimensions
<?php

function affiche($var1, $var2) {
echo "<tr><td>$var1</td><td>$var2</td></tr>";
}

// matrice de 3 X 2
$tableau[0][0] = 2;
$tableau[0][1] = 4;
$tableau[1][0] = 6;
$tableau[1][1] = 8;
$tableau[2][0] = 10;
$tableau[2][1] = 12;

echo "<table border='1' width='33%'>";
affiche ($tableau[0][0], $tableau[0][1]);
affiche ($tableau[1][0], $tableau[1][1]);
affiche ($tableau[2][0], $tableau[2][1]);
echo "</table>";

?>

Cet exemple permet l’affichage d’une matrice de 3 lignes et 2 colonnes sous forme d’une table HTML. Remarquez la création du tableau: on a directement affecté les valeurs aux différentes positions d’index.

Quelques fonctions utiles pour les tableaux :

  • count($array) : compte le nombre d’éléments d’un tableau (=sizeof)‏
  • list($var, …) : permet de rassembler les variables $var, ... sous forme de tableau, pour les assigner en une seule ligne
  • sort($array) : trie le tableau, du plus petit au plus grand (crée de nouvelles clefs)‏
  • ksort($array) : trie le tableau sur la valeur des clefs
  • key($array): retoure la clef courante du tableau
  • current($array) : retourne l’élément courant du tableau, sans en déplacer le pointeur interne (retourne FALSE si le pointeur est au-delà du dernier élément)‏
  • next($array) : avance le pointeur interne du tableau (retourne FALSE si on dépasse le dernier élément)‏
  • each($array) : retourne, sous forme d’un tableau la paire clé/valeur courante du tableau array et avance le pointeur de tableau (voir foreach())‏
  • implode($string, $array) : représentation en chaîne d’un tableau avec le paramètre $string comme séparateur
<?php
$tableau = array(2, 4, 6, 8, "chien", 'chat', 10);

list($a, $b, $c, $d) = $tableau;

echo $a . $b . $c . $d;

echo '<hr>';

reset($tableau);

list($key, $value) = each($tableau);

echo 'clef : ' . $key . ' value : ' . $value;

echo '<hr>';

$value = current($tableau);

echo 'value : ' . $value;

?>

Table des Matières

Sujet précédent

Les variables

Sujet suivant

Les conversions de type :

Cette page