YBET

Rue Albert 1er, 7

6810 Pin - Chiny

Route Arlon - Florenville

(/fax: 061/32.00.15

Le PHP - MySQL, développer son propre site internet dynamique

YBET informatique Forum webmaster Contact

5. Variables tableaux (matrice) en PHP

1. Initialisation d'un tableau. - 2. Utilisation - 3. Nombre de valeurs dans un tableau: count() - 4. Transformation - 5. Impression

Comme dans tous les langages de programmation, un tableau (matrice) permet d'insérer des valeurs dans des cases. Ceci facilite le rassemblement de données, surtout que de nombreuses fonctions en PHP permettent le tri et le filtre sur les données incluses dans ce type de variables. Dans un chapitre suivant, nous les remplacerons par une base de donnée Mysql, mais les tableaux sont souvent utilisées pour de faibles quantités d'informations, surtout que le nombre de bases de données possibles sur un hébergement internet mutualisé est souvent limité à 1 base, en plus d'une limitation éventuelle de taille maximum.

1. Initialisation d'un tableau

Contrairement aux autres variables de PHP, vous devez initialiser les tableaux avant de les utiliser. Cette fonction se fait par:

<?php

// $tableau est la variable de type matrice

$tableau = array();

?>

Remarquez que nous n'avons pas donné le nombre de colonnes ou de lignes. Un élément du tableau peut être de tout type, y compris un tableau en utilisant différents niveaux d'accolades. Prenons quelques exemple:

2. Utilisation d'un tableau

$tableau[1] est l'élément 1 du tableau.

$tableau["a"] est l'élément a du tableau.

$tableau["jour-du-mois"] est l'élément jour-du-mois du tableau.

$tableau[$numero] reprend comme paramètre une autre variable en php, ici $numero, qui peut-être incrémenté par exemple

Si l'opérante est une chaîne de texte, elle doit être entre guillemets.

Nous allons par exemple gérer un tableau reprenant le type d'appareil et sont numéro de série.

  • <?php
  • $appareil = array();
  • $appareil [1] [1] = "PC bureau";
  • $appareil [1]["serie"] = "ABV25620";
  • if (!isset($appareil[1][1])){
  • return FALSE;
  • }else{
  • print($appareil[1][1]);
  • print("<br>");
  • print($appareil[1]["serie"]);
  • }
  • ?>

La première partie définit les valeurs du tableau.

La fonction conditionnelle si vérifie si les coordonnées de la variable 1 existe (!isset() est la négation). Si la cellule n'existe pas, il renvoie la valeur FALSE, sinon, il affiche les valeurs.

Voici le résultat:

PC bureau
ABV25620

La variable $_SERVER vue au chapitre précédant est également un tableau.

Cette partie sera utilisée notamment pour récupérer des valeurs d'une table Mysql

3. Nombres de valeur d'un tableau

Pour compter le nombre de cellules d'un tableau (en fait le nombre de lignes), nous pouvons utiliser la fonction count()

$tableau=array();
$tableau[1]="valeur 1";
$tableau[2]="valeur 2";
$tableau[2]['tests']="valeur 2";
print(count($tableau));

Affichera le nombre 2.

Une remarque, si votre tableau est à 2 dimensions, cette commande affiche uniquement le nombre de lignes.

4. Transformation

La fonction implode permet de créer une chaîne de caractères reprenant tous les éléments d'un tableau. A l'inverse, la commande explode permet de créer un tableau à partir d'une chaîne de caractère.

$tableau = array()
// les tableaux doivent toujours être déclarés en PHP au contraire des variables standard.

$chaine=implode("parametre de séparation",$tableau);

$tableau=explode("paramètre de séparation",$chaine,limit);
// limit permet de limiter le nombre de valeur (exemple 2 pour deux valeurs), un nombre négatif est aussi accepté (exemple, pour une chaîne de 4 occurence, la limit -1 donne 3). Ce caractère est optionnel.

<?php
$tableau=array();
$tableau[1]="valeur 1";
$tableau[2]="valeur 2";
$champs=implode(",",$tableau);
echo $champs;
// affiche valeur 1,valeur 2;
?>

5. Impression

Dernière petite chose, l'impression du contenu d'un tableau. Dans un programme, ces fonctions sont peu utilisées, par contre, lorsque qu'on debug le programme (donc en cours de programmation), on a souvent besoin de voire si notre développement marche. On reprend le tableau ci-dessus avec ses valeurs.

print_r($tableau);

// affiche toutes les cellules du tableau avec leur contenu

affiche: Array ( [1] => valeur 1 [2] => valeur 2 ), ce qui correspond à valeur1 pour l'élément [1], valeur 2 pour l'élément [2]

Pas très lisible mais cette commande peut être améliorée

<pre>

<?php
        print_r($tableau);
        ?>

</pre>

affiche:
Array
(
    [1] => valeur 1
    [2] => valeur 2
)

Mais il y a une autre fonction pour afficher le contenu de ces tableaux: var_dump qui va changer la présentation mais aussi indiquer le nombre de caractères dans chaque cellule:

<?php

var_dump($tableau);

?>

affiche:
array(2) { [1]=> string(8) "valeur 1" [2]=> string(8) "valeur 2" }
avec le nombre de caractères ...

On peut de nouveau utiliser <pre> comme commande html

<pre>

<?php

var_dump($tableau);

?>

</pre>

qui affiche les résultats à la suite des autres par ligne:

array(2) {
  [1]=>
  string(8) "valeur 1"
  [2]=>
  string(8) "valeur 2"
}

Sur le sujet:

<4. Créer des fonction PHP

>6. Fonctions PHP spécifiques

Mise en ligne: 22/12/2008 - Mise à jour 20/03/2012 (ajout impression et découpe, correction erreurs PHP5.3.0)