Imprimer ce chapitreImprimer ce chapitre

Syntaxe de base PHP

6 Les variables

6.4 Le type tableau (array)

Un tableau est une variable pouvant contenir plusieurs valeurs ordonnées. A chaque valeur d'un tableau correspond une clé unique qui permet d'acceder à la zone mémoire où elle est stockée. Une clé est soit un entier (tableau indexé), soit une chaîne de caractères (tableau associatif). Une valeur est de type quelconque (entier, chaîne de caractères, tableau, ...). Un tableau peut contenir à la fois des clés entières et chaîne de caractères (nous pouvons parler de tableaux hybrides).

Création d'un tableau

Le mot clé array est généralement utilisé pour créer un tableau. L'insertion d'une valeur dans un tableau qui n'existe pas à l'aide de la syntaxe dite « entre crochets » permet également  de créer un tableau.

Exemple 14

<?php //cas 1

$etudiant=array

(0=>1,

1=>"Diop",

2=>"Moussa");

print_r($etudiant) ;

?>

<?php  //cas 2

$etudiant=array(1,"Diop" 

,"Moussa") ;

print_r($etudiant) ;

?>

<?php  //cas 3

$etudiant[0]=1 ;

$etudiant[1]="Diop" ;

$etudiant[2]="Moussa";

print_r($etudiant) ;

?>

<?php  //cas 4

$etudiant=array

('id'=>1,

'nom'=>"Diop",

'prenom'=>"Moussa");

print_r($etudiant) ;

?>

<?php //cas 5

$etudiant=array

('id'=>1,

10=>"Diop",

'prenom'=>"Moussa");

print_r($etudiant) ;

?>

<?php  //cas 6

$etudiant[]=1 ;

$etudiant[5]="Diop" ;

$etudiant[]="Moussa";

print_r($etudiant) ;

?>

 

Les cas 1, 2, 3 sont identiques avec des clés entieres (0, 1, 2). Le cas 4 utilise des clés chaîne de caractères. Le cas 5 utilise des clés entieres et des clés chaîne de caractères. Pour le cas 6 où nous ne spécifions pas de clé, PHP attribut la clé entière la plus élevé plus un. Donc les clés entières pour le cas 6 sont 0, 5 et 6.

Accès aux valeurs d'un tableau

La syntaxe entre crochets est utilisée pour accéder à une valeur d'un tableau.

Exemple 15

<?php //cas 1

$etu[0]=1 ;

$etu['nom']="Diop" ;

$val="prenom";

$etu[$val]="Moussa" ;

echo "id:" . $etu[0] . " nom: "  . $etu['nom'] . " prenom: "  . $etu[$val] . "<br />";

echo "id: $etu[0] nom: {$etu['nom']} prenom : {$etu[$val]} ";

?>

<?php //cas 2

$etus[0]= array('id'=>1, 'nom'=>"Diop",'prenom'=>"Moussa");

$etus[1]= array('id'=>2, 'nom'=>"Ba",'prenom'=>"Mamadou");

$etus[2]= array('id'=>3, 'nom'=>"Gueye",'prenom'=>"Fatou");

echo "id:" . $etus[0]['id'] . " nom: "  . $etus[0]['nom'] . "<br />";

echo "id: {$etus[0]['id']}  nom: {$etus[0]['nom']} <br />";

?>

Noter la syntaxe entre accoladde de même que la concaténation de chaînes de caractères à utiliser pour plus de lisibilité. Noter également que $val n'est pas entouré par des guillemets quand nous l'utilisons comme clé de type chaîne de caractères. Dans le cas 2 la valeur du tableau etus est de type tableau. Cette syntaxe nous permet de déclarer des tableaux de dimension n (n>1).

Remarques

  1. Pour eviter toute confusion avec les constantes de même nom, la valeur d'une clé de type chaîne de caractère doit être encadré par des guillemets.

Fonctions sur les tableaux

PHP dispose de nombreuses fonctions pour la gestion et la manipulation de tableaux. Le tableau suivant en liste quelques unes avec des exemples d'utilisation.

Fonctions

Exemple

Description

count, sizeOf

count($etus)

renvoient le nombre d’élément d’un tableau

in_array

in_array('Moussa',$etu)

vérifie si une valeur existe dans un tableau.

array_key_exist

array_key_exist('nom',$etu)

vérifie si une clé existe dans un tableau

sort, rsort

sort($etu)

trie alphanumérique d’un tableau

implode

implode(' et ',$etu)

renvoie les éléments du tableau joints par la chaîne en argument

explode

explode(';','1;Diop;Mouss')

scinde une chaîne pour en faire un tableau

array_merge

array_merge($etu,$etu1)

fusionne plusieurs tableaux en un seul

Applications

  1. Dans le repertoire sequence3 à la racine du documentRoot créer pour chaque exemple de cette section un fichier php (exemple14cas1.php, exemple14cas2.php, ...).
  2. Créer dans le repertoire sequence3 un fichier fonctionsTab.php pour tester les fonctions sur les tableaux.