Je vais essayer d'être concis, les tableaux pourraient quasiment faire l'objet d'un bouquin.
Un tableau, c'est en quelque sorte une variable structurée, un peu comme un meuble qui a des tiroirs, chaque tiroir pouvant contenir lui-même des "sous-tiroirs", etc...
Imaginons un moment le schéma suivant. Tu veux stocker de la bouffe. Tu peux subdiviser le "tableau bouffe" en plusieurs catéfories, limitons à 3 :
- viandes
- poissons
- produits laitiers
Chaque catégorie peut elle-même être subdivisée en sous-catégories:
- viandes:
- * boeuf
- * porc
- * volailles
- Poissons:
- * poissons d'eau douce
- * poissons de mer
- Produits laitiers
- * Lait
- * beurre
- * fromages
Et on pourrait en subdiviser certains encore mais arrêtons là, je pense que tu dois visualiser ce découpage sans trop de difficultés. Je vais traduire ça en php dans une variable $alimentation : la première chose à faire, c'est de déclarer notre variable comme un tableau.
$alimentation = array();
Jusque là, rien de bien compliqué, on a un tableau tout ce qu'il y a de plus ordinaire. Maintenant, on veut mettre un contenu dedans, mais ce contenu est lui-même composé de tableaux. Il faut donc déclarer chacun des éléments comme des tableaux :
$alimentation['viandes'] = array();
$alimentation['poissons'] = array();
$alimentation['produits laitiers'] = array();
Nos index "viandes", "poissons" et "produits laitiers" sont des chaines de caractères, mais de cette manière sont indiqués comme étant en quelque sorte les "tiroirs" où on va trouver le contenu.
Premier point : $alimentation est un tableau associatif, il associe un index nommé à un contenu, que ce contenu soit une valeur ou un tableau de valeurs.
On va maintenant remplir nos "sous-tableaux" : là aussi, nous aurons des tableaux associatifs :
$alimentation['viandes']['boeuf'] = array();
$alimentation['viandes']['porc'] = array();
$alimentation['viandes']['volailles'] = array();
$alimentation['poissons']['poissons eau douce'] = array();
$alimentation['poissons']['poissons de mer'] = array();
J'ai arrêté là parce que le suivant est particulier : Si dans $alimentation['viandes']['boeuf'] je peux logiquement stocker "steak", "roti", "filet mignon", avec le lait, je ne peux plus subdiviser, donc, $alimentation['produits laitiers']['lait'] n'aurait pas de sens : là, je dois enregistrer une valeur "lait" et non un sous-tableau. Même chose pour "beurre" alors que "fromage" peut être un tableau : $alimentation['produits laitiers'] sera donc un tableau mixte avec deux sortes d'index. Ajoutons les valeurs, les explications suivent :
$alimentation['produits laitiers'][] = "lait";
$alimentation['produits laitiers'][] = "beurre";
$alimentation['produits laitiers']['fromages'] = array();
Là, j'ai à la fois des valeurs et un sous-tableau : ajoutons à ce dernier quelques valeurs :
$alimentation['produits laitiers']['fromages'][] = "camembert";
$alimentation['produits laitiers']['fromages'][] = "Tomme de Savoie";
$alimentation['produits laitiers']['fromages'][] = "Roquefort";
Là, tu as vu comment ajouter des valeurs dans un tableau indexé : le nom du tableau avec son index associatif auquel on ajoute des crochets vides et on assigne une valeur.
Si on reprend le second exemple quand je subdivise ma variable $alimentation, j'aurais pu procéder autrement et commencer par assigner des valeurs pour les transformer en tableau ensuite : ça aurait donné le code suivant:
$alimentation = array("Viandes", "Poissons", "Produits laitiers");
$alimentation['viandes'] = array();
$alimentation['poissons'] = array();
$alimentation['produits laitiers'] = array();
Le résultat serait exactement le même, mais la première méthode simplifie un peu... encore que ça reste une question de point de vue et d'habitude personnelle.
Maintenant, reproduis ces lignes et ajoute ensuite le code suivant :
<pre>
<?php
var_dump($alimentation);
?>
</pre>
affiche ta page et observe le résultat, tu devrais avoir quelque chose d'assez visuel pas trop complexe à comprendre.
Je vais essayer d'être concis, les tableaux pourraient quasiment faire l'objet d'un bouquin.
Un tableau, c'est en quelque sorte une variable structurée, un peu comme un meuble qui a des tiroirs, chaque tiroir pouvant contenir lui-même des "sous-tiroirs", etc...
Imaginons un moment le schéma suivant. Tu veux stocker de la bouffe. Tu peux subdiviser le "tableau bouffe" en plusieurs catéfories, limitons à 3 :
- viandes
- poissons
- produits laitiers
Chaque catégorie peut elle-même être subdivisée en sous-catégories:
- viandes:
- * boeuf
- * porc
- * volailles
- Poissons:
- * poissons d'eau douce
- * poissons de mer
- Produits laitiers
- * Lait
- * beurre
- * fromages
Et on pourrait en subdiviser certains encore mais arrêtons là, je pense que tu dois visualiser ce découpage sans trop de difficultés. Je vais traduire ça en php dans une variable $alimentation : la première chose à faire, c'est de déclarer notre variable comme un tableau.
[php]$alimentation = array();[/php]
Jusque là, rien de bien compliqué, on a un tableau tout ce qu'il y a de plus ordinaire. Maintenant, on veut mettre un contenu dedans, mais ce contenu est lui-même composé de tableaux. Il faut donc déclarer chacun des éléments comme des tableaux :
[php]$alimentation['viandes'] = array();
$alimentation['poissons'] = array();
$alimentation['produits laitiers'] = array();[/php]
Nos index "viandes", "poissons" et "produits laitiers" sont des chaines de caractères, mais de cette manière sont indiqués comme étant en quelque sorte les "tiroirs" où on va trouver le contenu.
Premier point : $alimentation est un tableau associatif, il associe un index nommé à un contenu, que ce contenu soit une valeur ou un tableau de valeurs.
On va maintenant remplir nos "sous-tableaux" : là aussi, nous aurons des tableaux associatifs :
[php]$alimentation['viandes']['boeuf'] = array();
$alimentation['viandes']['porc'] = array();
$alimentation['viandes']['volailles'] = array();
$alimentation['poissons']['poissons eau douce'] = array();
$alimentation['poissons']['poissons de mer'] = array();[/php]
J'ai arrêté là parce que le suivant est particulier : Si dans $alimentation['viandes']['boeuf'] je peux logiquement stocker "steak", "roti", "filet mignon", avec le lait, je ne peux plus subdiviser, donc, $alimentation['produits laitiers']['lait'] n'aurait pas de sens : là, je dois enregistrer une valeur "lait" et non un sous-tableau. Même chose pour "beurre" alors que "fromage" peut être un tableau : $alimentation['produits laitiers'] sera donc un tableau mixte avec deux sortes d'index. Ajoutons les valeurs, les explications suivent :
[php]$alimentation['produits laitiers'][] = "lait";
$alimentation['produits laitiers'][] = "beurre";
$alimentation['produits laitiers']['fromages'] = array();[/php]
Là, j'ai à la fois des valeurs et un sous-tableau : ajoutons à ce dernier quelques valeurs :
[php]$alimentation['produits laitiers']['fromages'][] = "camembert";
$alimentation['produits laitiers']['fromages'][] = "Tomme de Savoie";
$alimentation['produits laitiers']['fromages'][] = "Roquefort";[/php]
Là, tu as vu comment ajouter des valeurs dans un tableau indexé : le nom du tableau avec son index associatif auquel on ajoute des crochets vides et on assigne une valeur.
Si on reprend le second exemple quand je subdivise ma variable $alimentation, j'aurais pu procéder autrement et commencer par assigner des valeurs pour les transformer en tableau ensuite : ça aurait donné le code suivant:
[php]$alimentation = array("Viandes", "Poissons", "Produits laitiers");
$alimentation['viandes'] = array();
$alimentation['poissons'] = array();
$alimentation['produits laitiers'] = array();[/php]
Le résultat serait exactement le même, mais la première méthode simplifie un peu... encore que ça reste une question de point de vue et d'habitude personnelle.
Maintenant, reproduis ces lignes et ajoute ensuite le code suivant :
[php]<pre>
<?php
var_dump($alimentation);
?>
</pre>[/php]
affiche ta page et observe le résultat, tu devrais avoir quelque chose d'assez visuel pas trop complexe à comprendre.