TP semaine 2012-05

Les array

DÉFINITION

Un Array : est une variable qui permet d'enregistrer un nombre important des valeurs. On traduit souvent en français le mot anglais Array par tableau , mais pour éviter la confusion avec l'élément html table qui est également traduit en français par tableau je préfère utiliser le mot Array.

Il existe deux types d'Arrays :

  1. Les Arrays Numériques
  2. Les Arrays Associatifs

Les arrays Numériques

Par défaut les valeurs sont repérées par un index numérique ou clé (key) qui commence à 0. On peut cependant déclarer n'importe quelle valeur de départ.

SYNTAXE Déclaration Longue

$Nom de Variable [clé 0] = ' Valeur 0' ;
$Nom de Variable [clé 1] = ' Valeur 1' ;
$Nom de Variable [clé 2] = ' Valeur 2' ;
........................................................
$Nom de Variable [clé x] = ' Valeur x' ;

On peut indifféremment utiliser des apostrophes ou des guillemets pour déclarer les valeurs.

EXEMPLES

Array Déclaration longue démarrant à 0
$Semaine [0] = ' Lundi ' ;
$Semaine [1] = ' Mardi ' ;
$Semaine [2] = ' Mercredi ' ;
$Semaine [3] = ' Jeudi ' ;
$Semaine [4] = ' Vendredi ' ;
$Semaine [5] = ' Samedi ' ;
$Semaine [6] = ' Dimanche ' ;
Array Déclaration longue démarrant à 647
$Semaine [647] = ' Lundi ' ;
$Semaine [648] = ' Mardi ' ;
$Semaine [649] = ' Mercredi ' ;
$Semaine [650] = ' Jeudi ' ;
$Semaine [651] = ' Vendredi ' ;
$Semaine [652] = ' Samedi ' ;
$Semaine [653] = ' Dimanche ' ;

Exercices 1 : Création de deux Arrays Numériques déclaration longue et affichage de certaines valeurs

Roussillon [258] = Thuir

Roussillon [259] = Rivesaltes


SYNTAXE Déclaration Courte

$Nom de Variable = array (' Valeur0 ' , ' Valeur 1 ' , ' Valeur 2 ' ,... ,' Valeur x ' ) ;
On peut indifféremment utiliser des apostrophes ou des guillemets pour déclarer les valeurs.

EXEMPLES

Array Déclaration courte démarrant à 0
$Semaine = array (' Lundi ' , ' Mardi ' , ' Mercredi ' , ' Jeudi ' , ' Vendredi ' , ' Samedi ' , ' Dimanche ' ) ;
$Semaine = array (" Lundi " , " Mardi " , " Mercredi " , " Jeudi " , " Vendredi " , " Samedi " , " Dimanche " ) ;
Array Déclaration courte démarrant à 647
$Semaine2 = array (647 =>' Lundi ' , ' Mardi ' , ' Mercredi ' , ' Jeudi ' , ' Vendredi ' , ' Samedi ' , ' Dimanche ' ) ;

Exercices 2 : Création de deux Arrays Numériques déclaration courte et affichage de certaines valeurs

$Semaine[4] = Jeudi

$Semaine[6] = Samedi

$Semaine2[5288] = Lundi

$Semaine2[5294] = Dimanche

Exercices 3 : Affichage de toutes les valeurs d'un Array Numérique dans un tableau avec la boucle for

SEMAINE Lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche

Les array Associatifs

Dans les Array associatifs, la clé d'indexation est une chaine de caractères

Syntaxe forme longue

$Capitales1 [Fr] = ' Paris ' ;
$Capitales1 [Esp] = ' Madrid ' ;
$Capitales1 [Ptg] = ' Lisboa ' ;
$Capitales1 [Ital] = ' Roma ' ;
$Capitales1 [Bel] = ' Bruxelles ' ;

Syntaxe forme Courte

$Capitales1 = array ( ' Fr ' => ' Paris ' , ' Esp ' => ' Madrid ' , ' Ptg ' => ' Lisboa ', ' Ital ' => ' Roma ', ' Bel ' => ' Bruxelles ' ) ;

Exercices 4 : Création de deux Arrays Associatifs déclaration courte et affichage de certaines valeurs

Exemple : Capitales latines

Array associatif $Capitale1 créé en utilisant la forme courte et en copiant l'exemple ci-dessus. Vous pouvez bien sûr, pour vous entrainer, modifier les valeurs et les clés.




Affichage de deux ou trois valeurs :

Madrid

Lisboa

Bruxelles

Capitales scandinaves

Créer vous même un array associatif $Capitales2 en utilisant la forme courte. Les valeurs à saisir sont : Copenhague, Heslsinki, Oslo, Reikjavik, Stockholm. Pour les clefs d'indexation, vous pouvez laisser le champ libre à votre imagination.

Comme à côté, affichez trois valeurs (avec des sauts de lignes) :

Copenhague

Oslo

Stockholm

la boucle foreach

Il n'est pas possible d'utiliser une boucle for pour extraire et afficher les valeurs d'un array associatif. La boucle foreach est spécialement destinée à extraire les valeurs ainsi que les clefs d'un array qu'il soit numérique ou associatif. Sa syntaxe est rès simple.

SYNTAXE de la boucle foreach

Extraction des valeurs d'un Array

foreach( $Nom de l'Array as $Valeur ){ echo $Valeur };

Extraction des clefs et des valeurs d'un Array

foreach( $Nom de l'Array as $Clef =>$Valeur ){ echo $Clef . $Valeur };

Exercices 5 : Affichage de toutes les valeurs d'un Array avec la boucle foreach

Affichage des valeurs de l'array numérique $Semaine2, réalisé à l'atelier


SEMAINE

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Samedi

Dimanche

Affichez vous même, les clés et les valeurs de l'array associatif $Capitales2 en utilisant la boucle foreach avec as $Clef => $Valeur.

Danemark : Copenhague

Finlande : Heslsinki

Norvège : Oslo

Islande : Reikjavik

Suede : Stockholm

l' Array à deux (ou plus) dimensions : Syntaxe

Un array à deux (ou plus) dimensions, est un array dont les valeurs sont elles mêmes des arrays. Remarquons qu'il n'y a pas de limite aux dimensions d'un array si ce n'est celles de notre capacité à en comprendre la structure.

Prenons l'exemple ci-dessous de la création de l'array $Annee.

$Annee = array ();

$Annee [0] = array ('Trim 1', 'Janvier','Février','Mars');

$Annee [1] = array ('Trim 2', 'Avril','Mai','Juin');

$Annee [2] = array ('Trim 3', 'Juillet','Aout','Septembre');

$Annee [3] = array ('Trim 4', 'Octobre','Novembre','Décembre');

L'affichage ponctuels de valeurs d'un array à plusieurs dimensions, se fait en donnant ses deux (ou plus) clefs d'indexation, par exemple pour l'array $Annee :

$Annee [0][3] = Mars

$Annee [2][1] = Juillet

$Annee [1][2] = Mai

Array à deux dimensions  : Affichages ponctuels

L'array $Annee est créé. Affichez vous même ci-dessous, quatre valeurs de l'array $Annee distinctes de celles données en exemple. Vous pouvez insérer des sauts de ligne.

Octobre
Septembre
Avril
Février

Octobre
Septembre
Mai
Mars

Octobre

Septembre

Mai

Mars


Octobre

Septembre

Mai

Mars

Array à deux dimensions  : Affichage dans un tableau

La présentation en tableau est particulièrement adaptée à l'affichage d'un array à deux dimensions. En vous inspirant de l'exercice 3, essayez donc d'afficher l'ensemble des données de l'array $Annee dans le tableau ci-dessous.

L'ANNÉE
Trim 1 Janvier Février Mars
Trim 2 Avril Mai Juin
Trim 3 Juillet Aout Septembre
Trim 4 Octobre Novembre Décembre

Par Jean-Louis BARTHE, retraité actif