COURS PHP

  Dernière mise à jour effectuée le : Vendredi 15 août 2003    

Accueil | Les tableaux mixtes à deux dimensions

Les tableaux mixtes à deux dimensions

Pour comprendre cette leçon, il faut avoir vu les leçons suivantes :

Si vous ne les avez pas encore vues, allez les voir. Sauf pour celles et ceux qui savent déjà de quoi il s'agit, bien sûr.



Principe

Nous avons vu ou nous savons déjà, qu'à l'intérieur d'un tableau, on peut mettre ce que l'on veut. Y compris d'autres tableaux, et c'est du reste comme ça qu'on fait des tableaux à deux dimensions.
Jusqu'à maintenant, nous nous sommes contentés de mettre à l'intérieur d'un tableau indexé, d'autres tableaux de même nature (indexés eux aussi). Mais nous n'y sommes pas obligés.
Nous pouvons très bien mettre (selon notre bon vouloir), des tableaux associatifs à l'intérieur de tableaux indexés. Ou l'inverse. Mettre des tableaux indexés à l'intérieur de tableaux associatifs. PHP gérant les index numériques comme des clés numériques, ça ne fait aucune différence.

 



Construction

Reprenons l'exemple utilisé dans les tableaux associatifs à deux dimensions. Nous avions trois tableaux associatifs :

$JourSemaine = array("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche") ;

$Mois = array("January" => "janvier", "February" => "février", "March" => "mars", "April" => "avril", "May" => "mai", "June" => "juin", "July" => "juillet", "August" => "août", "September" => "septembre", "October" => "octobre", "November" => "novembre", "December" =>"décembre") ;

$JourSemaineAll = array("Lundi" => "Montag", "Mardi" => "Dienstag", "Mercredi" => "Mittwoch", "Jeudi" => "Donnerstag", "Vendredi" => "Freitag", "Samedi" => "Samstag", "Dimanche" => "Sonntag" ) ;

que nous avions associés dans un seul tableau lui même déclaré en mode associatif.
Imaginons maintenant que nous déclarions un tableau contenant ces trois là, mais sans mettre de clés d'association. En faisant comme ci-dessous :

$TradJoursMois = array($JourSemaine, $Mois, $JourSemaineAll) ;

Nous venons de créer un tableau mixte. Par défaut, puisque nous déclarons aucune clés d'association de ces tableaux dans le tableau principal qui les contient, PHP va les mettre dans leur ordre de déclaration, le premier au poste d'indice "0", le deuxième au poste d'indice "1" et le troisième au poste d'indice "2". Tout simplement. Nous aurons alors la structure suivante :

Array
(
    [0] => Array
        (
            [Monday] => Lundi
            [Tuesday] => Mardi
            [Wednesday] => Mercredi
            [Thursday] => Jeudi
            [Friday] => Vendredi
            [Saturday] => Samedi
            [Sunday] => Dimanche
        )

    [1] => Array
        (
            [January] => janvier
            [February] => février
            [March] => mars
            [April] => avril
            [May] => mai
            [June] => juin
            [July] => juillet
            [August] => août
            [September] => septembre
            [October] => octobre
            [November] => novembre
            [December] => décembre
        )

    [2] => Array
        (
            [Lundi] => Montag
            [Mardi] => Dienstag
            [Mercredi] => Mittwoch
            [Jeudi] => Donnerstag
            [Vendredi] => Freitag
            [Samedi] => Samstag
            [Dimanche] => Sonntag
        )

)

dans laquelle vous remarquerez que les "étiquettes" (clés) des postes du tableau principal sont des chiffres [0], [1], [2].
Nous avons donc un tableau indexé qui contient des tableaux associatifs. C'est un tableau mixte.

 



Utilisation

Dans l'exemple des tableaux associatifs à deux dimensions, nous avions l'exemple suivant :

print ("En Anglais, Monday veut dire " .$TradJoursMois['NomJour']['Monday'] . " alors que Lundi se traduit en Allemand par " .$TradJoursMois['NomJourAllemand']['Lundi']) ;

Ce qui donnait le résultat suivant :

"En Anglais, Monday veut dire Lundi alors que Lundi se traduit en Allemand par Montag"

Avec notre tableau mixte (il a le même contenu) nous écririons :

print ("En Anglais, Monday veut dire " .$TradJoursMois[0]['Monday'] . " alors que Lundi se traduit en Allemand par " .$TradJoursMois[2]['Lundi']) ;

donnera toujours le même résultat. Seulement, nous avons remplacé les étiquettes'NomJour' et 'NomJourAllemand' par leur nouvelle valeur numérique, respectivement [0] et [2].

Pas plus compliqué que ça. Pas de quoi en faire un fromage hein ?

 



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00

© Philippe Médan 1999-2003. Tous droits de reproduction réservés pour tous pays.