Les tableaux en PHP

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.

Les tableaux en PHP utilisant la fonction array(), sont des variables pouvant contenir plusieurs valeurs constitués d'un indice ou clé (chiffre ou texte), sinon dit un entier ou une chaîne de caractères correspondant à une valeur. Pour ce faire, on utilise le fonction array() qui permet de créer un tableau et qui peut prendre un nombre illimité de paramètres, chacun séparé par une virgule, sous la forme d'une paire clé | valeur.

Généralement et comme vous le savez, une variable ressemble à ça :

<?php
$ma_variable = "Salut toi.";
echo $ma_variable;//Affiche : Salut toi.
?>

Avec la fonction array(), c'est un peut la même chose, sauf que la variable que l'on va déclarer peut contenir plus de chose.

Pour commencer , on déclare une variable contenant un tableau :

<?php
$toto = array();
?>

Comme dit un peut plus haut, chaque paramètre est séparé par une virgule :

<?php
$toto = array("maman" , "papa" , "grand-mère");
?>

Dans ce tableau (bhaa ouai, c'est un tableau ^^), tout ce qui est contenu entre les parenthèse sont des valeurs et chaque valeur est représentée par un chiffre (clé) attribué automatiquement et qui commence toujours par zéro.
Ainsi dans cette exemple, maman est égal 0, papa est égal à 1 et grand-mère est égal 2.

Clé Valeur
0 maman
1 papa
2 grand-mère

Pour tester notre tableau et ainsi vérifier la concordance "clé => valeur", nous allons utiliser la fonction print_r() qui va nous retourner tout les éléments de notre tableau, donc, notre array(). Cette fonction sert principalement à vérifier de façon rapide et en interne notre tableau ... donc ce n'est pas destiné à être affiché à la vue de tous .

<?php
$toto = array("maman" , "papa" , "grand-mère");
 echo '<pre>';
  print_r($toto);
 echo '</pre>';
?>

La fonction print_r($toto) va donc nous retournez un tableau de la forme suivante :

Array
(
    [0] => maman
    [1] => papa
    [2] => grand-mère
)

Pour afficher les valeurs du tableau, on fait un simple "echo" de la variable $toto suivit de la clée entre crochet :

<?php
$toto = array("maman" , "papa" , "grand-mère");
echo $toto[0];//Affiche comme résultat : maman
echo $toto[1];//Affiche comme résultat : papa
echo $toto[2];//Affiche comme résultat : grand-mère
?>

Ce tableau dont les clées sont des chiffres, s'appel un tableau numéroté ... parce que chaque clée est un chiffre.
tableau en PHP avec array()

On peut également créer un tableau qui sera dit associatif et qui nous donnera exactement le même résultat. La différence est que l'on associe directement la clée à la valeur en utilisant cette "fonction" qui ressemble à une flêche => donc (=> signifie associé à ..).

<?php
$toto = array(
0 => "maman",
1 => "papa",
2 => "grand-mère");
echo $toto[0];//Affiche comme résultat : maman
echo $toto[1];//Affiche comme résultat : papa
echo $toto[2];//Affiche comme résultat : grand-mère
?>

Note : On peut très bien tout écrire sur une seule ligne, mais on si retrouve mieux ainsi dans son code!

De même, on peut très bien déclarer un tableau vide de la façon suivante qui aura le même effet que celui juste au dessus.
Allé, un autre exemple de tableau pour la forme :

<?php
$toto = array();//on déclare un tableau
$toto[0] = "maman";//notez que l'instruction se termine par un point-virgule
$toto[1] = "papa";
$toto[2] = "grand-mère";
echo $toto[0];//Affiche comme résultat : maman
echo $toto[1];//Affiche comme résultat : papa
echo $toto[2];//Affiche comme résultat : grand-mère
?>

Nous venons de voir comment on utilise la fonction array() pour créer un tableau dont les clés sont numériques (chiffres). Comme vous le constatez, que le tableau soit numéroté ou associatif, si la clé est numérique, celle ci n'est pas contenu entre des guillemets contrairement à la valeur qui est un texte .

Histoire de bien comprendre, on va mélanger un peut tout ça :

<?php
$toto = array(
"bonjour" => "maman",
1 => 55,
"papa" => 33);
echo $toto["bonjour"];//Affiche comme résultat : maman
echo $toto[1];//Affiche comme résultat : 55
echo $toto["papa"];//Affiche comme résultat : 33
?>

En bref :

*Si la clée ou la valeur est un chiffre, celle-ci n'est pas "encadrée".
*Si la clée ou la valeur est un texte, celle-ci doit être "encadrée".

La fonction foreach()

Il existe une fonction ou structure de contrôle nommé "foreach" qui permet tout spécialement de parcourir les tableaux.

Heinn .. quoi ta dit .. j'ai pas tout compris ????

Les exemples précédents démontrent comment utiliser les tableaux de façon "manuel", maintenant, nous allons voir comment parcourir un tableau de façon "automatique" grâce à la fonction foreach().

Voilà à quoi ressemble une fonction foreach() :

foreach($ma_variable AS $clef_de_ma_variable => $valeur)
 {
   echo ''.$clef_de_ma_variable.' | '.$valeur.'<br />';		 
 }

Disséquons un peut ce code :

foreach() : c'est la fonction.
$ma_variable : correspond à la variable de "l'array()" soit $toto.
AS : est utilisé pour assigner un alias au tableau.
$clef_de_ma_variable : contiendra un numéro partant de zéro. Vous pouvez donnez le nom qui vous arrange à cette variable.
=> : signifie associé à ..
$valeur : contiendra la valeur. Vous pouvez aussi donnez le nom qui vous arrange à cette variable.

Un exemple concret :

<?php
$toto = array("maman" , "papa" , "grand-mère");
foreach($toto AS $variable_au_pif => $valeur)
 {
  echo ''.$variable_au_pif.' | '.$valeur.'<br />';
 }
?>

Le résultat nous donnera donc :

0 | maman
1 | papa
2 | grand-mère
Chaque valeur de notre tableau est bien associée à une clée grâce à la fonction foreach() . Nous récupérons donc une clée associée à une valeur.

Dans le cas ou l'on souhaite juste obtenir la valeur sans la clé, on procèdera de cette façon :

<?php
$toto = array("maman" , "papa" , "grand-mère");
foreach($toto AS $valeur)
 {
  echo ''.$valeur.'<br />';
 }
?>

Avant de finir ce tutoriel, voyons un petit exemple concret des tableaux :

<?
$requete =array("je","tu","il","elle","nous","vous","ils","elles");
$mot_banni="il";
 
foreach ($requete AS $variable_au_pif)
{
 if ($variable_au_pif == $mot_banni)
 { 
  echo 'Le mot <b>'.$variable_au_pif.'</b> correspond à un mot banni.<br/>';
 }
 else 
 {
  echo 'Le mot <b>'.$variable_au_pif.'</b> est autorisé.<br/>';
 }
//on ferme foreach
}
?>

Ce qui va nous afficher :

Le mot je est autorisé.
Le mot tu est autorisé.
Le mot il correspond à un mot banni.
Le mot elle est autorisé.
Le mot nous est autorisé.
Le mot vous est autorisé.
Le mot ils est autorisé.
Le mot elles est autorisé.


Voici un autre exemple de l'utilisation des tableaux. Le but du code ci-dessous est d'afficher des includes PHP différentes dans une même page .. un peut comme les frames. Placez ce code une page nommé "index.php". Créez 3 autres pages nommées page1.php, page2.php et page3.php puis envoyez le tout sur votre serveur.

<?php
 
//Tableau numéroté
$tableau = array(
"page1",
"page2",
"page3"
);

//On boucle le tableau
foreach($tableau AS $variable_au_pif => $valeur)
{
    echo '<a href="index.php?id='.$variable_au_pif.'">'.$valeur.'</a> - ';
}
 
echo '<hr/>';
 
//On évite que les petits malins fassent joujou avec la variable en plaçant des balises 
HTML dans l'url
$toto = htmlspecialchars($_GET["id"]);   //On vérifie que la variable est bien de type numérique if(!is_numeric($toto)) { echo 'Petit malin ... tu n\'as rien d\'autre à faire que jouer avec mes variables!!'; } elseif ($toto == 0) { include("page1.php"); } elseif ($toto == 1) { include("page2.php"); } elseif ($toto == 2) { include("page3.php"); } else { echo 'Il n\'y a rien à voir ici!'; } ?>

Grace au tableau et à la fonction foreach, on construit un simple lien qui passe en paramêtre dans l'url les clées de notre tableau (Exemple : <a href="index.php?id=1">page2</a>).

Vous verrez dans les tutoriels concernant l'Initiation aux requêtes SQL avec PHP que la fonction array() est très utilisé pour sortir des résultats d'une base de données .

Voir/déposer un commentaire (0) | Signaler un problème