Sondage du mois

Sondage du mois
 

  La connaissance ne vaut que si elle est partagée par tous




 
  Astuce Adobe Flash : Raccourci Copier un cadre : Ctrl Alt C




Les tutoriaux: Index » Php » Methode » Cours 7 – Les tableaux

Introduction

  • Tutoriel posté par Sky
  • 1835 lectures
  • Mis en ligne le
  • Dernière mise à jour le 09-02-2011
  • Ce tutoriel a été estimé comme simple.


Automatic Translations:
Translate Into English Translate Into German Translate Into Italian Translate Into Spanish Translate Into Portuguese

Cours 1 - Les bases de PHP
Cours 2 - Les types
Cours 3 - Les variables
Cours 4 - Les opérateurs
Cours 5 - Les constantes
Cours 6 - Les structures de contrôle
Cours 7 - Les Tableaux

Méthodologie

Les tableaux ou array qu'est ce que c'est ?

Quand nous parlons de tableaux en PHP (ou array en anglais) il faut bien comprendre que cela n'a absolument rien à voir avec un tableau HTML (table, tr, td etc...) Un tableau HTML sert à positionner du contenu dans sa page tandis que les tableaux PHP servent à stocker et manipuler des données qui seront ensuite accessible tout au long de vos scripts PHP. Nous pourrions vulgariser cela en :

InformationTableau HTML => Présentation de contenu
Tableau PHP => Stockage et manipulation de données

Les tableaux PHP permettent donc de stocker et grouper des informations de tout types (voir le cours sur les types en php).
C'est un moyen très utile de stocker des données et de pouvoir les appeler simplement autant de fois que nous le souhaitons.
Si vous avez du code HTML récurent à placer dans vos pages il est peux être intéressant de les stocker dans un tableau pour les appeler simplement à tout moment.

Il existe deux sortes de tableau distincts, les tableaux à index numériques et les tableaux associatifs (les tableaux associatifs peuvent être également multidimensionnels).

Nous commencerons par présenter les tableaux à index numériques qui sont plus simples à appréhender.

Comment déclarer un tableau ?

Pour déclarer un tableau nous utilisons la fonction PHP array(), cela se passe de la même manière que la déclaration d'une variable.

CODE PHP


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

Nous venons de déclarer un tableau vide, sans donnée. Voyons maintenant les sortes de tableaux.

Tableau à index numériques

Le tableau à index numérique (indexé numériquement) est simplement un tableau de données affectées à un index numérique unique (0,1,2,3 etc.).
Nous venons ci-dessus de déclarer un tableau vide, voyons plutôt comment déclarer un tableau avec des données.

CODE PHP


<?php $outils = array('marteau','tournevis','pince','cutter'); ?>

Nous venons de déclarer un tableau à index numérique, de ce fait nous pouvons accéder à ces données via un index numérique unique (0,1,2,3 etc.):
Si je veux afficher le cutter je procède de cette manière :

CODE PHP


<?php echo $outils[3]; // Affiche cutter ?>

Pourquoi 3 et non 4 ? Un tableau commence à 0 et non à 1. Notre tableau correspond donc à :

CODE PHP


  
<?php 
echo $outils[0]; // Affiche marteau
echo $outils[1]; // Affiche tournevis
echo $outils[2]; // Affiche pince
echo $outils[3]; // Affiche cutter
?>

Vous pouvez cependant spécifier à un tableau PHP de commencer à 1 par exemple :

CODE PHP


<?php 
$outils = array(1 => 'marteau','tournevis','pince','cutter'); 

/* Notre tableau donne donc 
$outils[1] vaut marteau
$outils[2] vaut tournevis
$outils[3] vaut pince
$outils[4] vaut cutter
*/

?>

Un autre exemple nous permettrais de construire par exemple un système simple de BBCODE

CODE PHP


<?php 
$table = array('<table class="css"><tr><td>','</td></tr></table>'); 
echo $table[0]." Texte de mon tableau HTML numéro 1 ".$table[1]; 
echo $table[0]." Texte de mon tableau HTML numéro 2 ".$table[1]; 
echo $table[0]." Texte de mon tableau HTML numéro 3 ".$table[1]; ?>

L'avantage ici est de pouvoir stocker des lignes de codes une fois pour toute et de pouvoir les appeler à tout moment sans avoir à retaper les lignes de codes entières. Pour diminuer encore plus le code nous aurions pu définir une variable qui correspondrait à un élément du tableau PHP, par exemple

CODE PHP


<?php 
$table = array('<table class="css"><tr><td>','</td></tr></table>'); 
$a = $table[0];
$b = $table[1];
echo "$a Texte de mon tableau HTML numéro 1 $b";
echo "$a Texte de mon tableau HTML numéro 2 $b";
echo "$a Texte de mon tableau HTML numéro 3 $b"; ?>



Lister les éléments d'un tableau à index numériques

Pour lister simplement les éléments d'un tableau nous utiliserons la fonction sizeof() de PHP qui nous renvoie le nombre d'entrée du tableau, ainsi avec une boucle for nous pouvons afficher simplement tout le tableau

CODE PHP


<?php 
$outils = array('marteau','tournevis','pince','cutter'); 
// Affichage du tableau sans sizeof, si le tableau comporte 100 index imaginer la ligne de code interminable :) echo $outils[0]." - ".$outils[1]." - ".$outils[2]." - ".$outils[3]; // Avec sizeof et une boucle for for($i=0;$i<sizeof($outils);$i++) // tant que $i est inférieur au nombre d'éléments du tableau { echo $outils[$i]."<br />"; // on affiche l'élément du tableau avec l'index $i } /* Ce qui affiche à l'écran
marteau tournevis pince cutter */ ?>



Ajouter des données dans un tableau à index numériques

Pour ajouter des données dans un tableau à index numériques il suffit simplement de faire comme ceci, je veux ajouter la donnée "clou" à ma liste.

CODE PHP


<?php  $outils[] = 'clou'; ?>

En ajoutant une valeur comme ceci vous placez "clou" à la fin de votre tableau.

Votre tableau deviens donc :

CODE PHP


<?php $outils = array('marteau','tournevis','pince','cutter','clou'); ?>

CODE PHP


  
  <?php 
  echo $outils[0]; // Affiche marteau
  echo $outils[1]; // Affiche tournevis
  echo $outils[2]; // Affiche pince
  echo $outils[3]; // Affiche cutter
  echo $outils[4]; // Affiche clou
?>

PHP modifie dynamiquement le tableau et entre les nouvelles données à l'index numérique spécifié, si vous procédez comme ci-dessus l'index numérique sera incrémenté de 1, cependant vous pouvez lui dire explicitement de prendre un index numérique choisi

CODE PHP


<?php  $outils[50] = 'clou'; ?>

Ainsi notre tableau sera :

CODE PHP


  
  <?php 
  echo $outils[0]; // Affiche marteau
  echo $outils[1]; // Affiche tournevis
  echo $outils[2]; // Affiche pince
  echo $outils[3]; // Affiche cutter
  echo $outils[4]; // N'affiche RIEN
  echo $outils[50]; // Affiche clou
?>



Tableau associatif

Le tableau associatif fonctionne plus ou moins de la même manière que son petit frère sauf qu'au lieu d'être indexé numériquement il sera associé à une clé. Le tableau associatif fonctionne donc en clé => valeur, par exemple :

CODE PHP


<?php 
$annuaire = 	array(
				'nom' => 'BIGSBY',
				'prenom' => 'Bill',
                'adresse' => '6 rue chui tout vert',
                'ville' => 'Los Angeles'
                ); 

// Affichage des valeurs du tableau associatif
echo 'Nom : '.$annuaire['nom'].'<br />';
echo 'Prénom : '.$annuaire['prenom'].'<br />';
echo 'Adresse : '.$annuaire['adresse'].'<br />';
echo 'Ville : '.$annuaire['ville'].'<br />';

/* Affiche à l'écran 
Nom : BIGSBY
Prénom : Bill
Adresse : 6 rue chui tout vert
Ville : Los Angeles
*/
?>

Informationclé ne peut être qu'un entier ou une chaîne de caractères
valeur quant à lui peut être de n'importe quel type (voir cours 2 - Les types)

Pour vous donner un exemple nous pourrions stocker dans un tableau associatif les données de configuration d'un script d'upload d'image par exemple.

CODE PHP


<?php 
$config = 	array(
				'width' => '1000',
				'height' => '500',
                'poids' => '1000'
                );

// Nous aurions pu aussi l'écrire comme ceci 
$config = 	array();
$config['width'] = '1000'; 
$config['height'] = '500'; 
$config['poids'] = '1000'; 
?>

Imaginons un script d'upload d'image simple, lors de la vérification du fichier uploadé nous pourrions faire des vérifications suivantes à l'aide d'information stockées dans un tableau associatif:

CODE PHP


<?php 
$fichier = $_FILES['image']['name']; // Notre fichier image
$poids = $_FILES['image']['size']*1024.7 // Poids du fichier image en Ko

/* Vous remarquerez que pour récupérer les informations d'une image uploadée par formulaire
nous utilisons un tableau associatif également, sauf que celui ci est multidimensionnel,
mais nous y reviendrons plus tard */

$source = imagecreatefromjpeg($fichier); // Création d'une image par rapport à l'image source
$largeur_source = imagesx($source); // Largeur de notre image
$hauteur_source = imagesy($source); // Hauteur de notre image 

if($largeur_source > $config['width']) { echo 'Votre image est trop large';}
if($hauteur_source > $config['height']) { echo 'Votre image est trop haute';}
if($poids > $config['poids']) { echo 'Votre image est trop grosse';}

?>



Parcourir un tableau associatif

Pour parcourir un tableau associatif nous utiliserons la fonction foreach()
Vous pouvez l'utilisez de deux manières différentes, cela dépend de l'information du tableau que vous souhaitez afficher (clé et/ou valeur)

Dans le cadre ou seul la valeur vous intéresses nous procéderons comme ceci :

CODE PHP


<?php 
$config = 	array(
				'width' => '1000',
				'height' => '500',
                'poids' => '200'
                );
                
foreach($tableau AS $valeur)
{
echo "$valeur<br />";
} 
/* Affichera à l'écran ceci : 
1000
500
200
*/  
?>

Dans le cadre ou vous souhaitez récupérer les deux éléments du tableau (clé et valeur) nous procéderons comme ceci :

CODE PHP


  <?php 
  $config = 	array(
  'width' => '1000',
  'height' => '500',
  'poids' => '200'
  );
  
  foreach($tableau AS $cle => $valeur)
  {
  echo "$cle vaut $valeur<br />";
  } 
  /* Affichera à l'écran ceci : 
  width vaut 1000
  height vaut 500
  poids vaut 200
  */  
  ?>



Les tableaux multidimensionnels

Ca deviens très "science fiction" tout ça :p Des tableaux multidimensionnels ?
Ces tableaux sont en fait des tableaux de tableaux, c'est à dire qu'une valeur sera (au lieu d'un entier, chaine de caractère etc.) un tableau.
Voyons un exemple :

CODE PHP


<?php 

// Un tableau associatif
$config = 	array('width' => '1000','height' => '500','poids' => '200');

// Un tableau multidimensionnel
$config = 	array('width' => array('min' => '100', 'max' => '1000'),
                  'height' => array('min' => '100', 'max' => '500'),
                  'poids' => '200');

$cle = $config[width][min];
echo $cle;  // Affiche 100

$cle = $config[height][max]; 
echo $cle; // Affiche 500    

/* Nous aurions pu aussi écrire notre tableau comme ceci */
$config = array();
$config['width'] = array('min' => '100', 'max' => '1000');
$config['height'] = array('min' => '100', 'max' => '500');
$config['poids'] = '200';

?>



Afficher rapidement le contenu d'un tableau brut de pomme

Cette méthode est plus une aide ou débug pour afficher le contenu brut d'un tableau rapidement sans réécrire une boucle for, foreach etc.
Pour ce faire nous utilisons la commande print_r.

CODE PHP


<?php 
echo '<pre>';
print_r($config);
echo '</pre>';

Nous utilisons <pre>...</pre> car print_r n'affiche pas de balise html, cela nous permet d'avoir à l'écran un affichage plus simple à lire.Voyons ci-dessous ce que cela donne

CODE PHP


  <?php 
  $config = 	array(
  'width' => '1000',
  'height' => '500',
  'poids' => '200'
  );
  
echo '<pre>';
print_r($config);
echo '</pre>'; 

/* Affiche à l'écran ceci 
Array
(
    [width] => 1000
    [height] => 500
    [poids] => 200
)
*/
?>

 

Rechercher dans un tableau PHP

Nous avons vu comment créer des tableaux, ajouter des données dans un tableaux, afficher le contenu d'un tableau mais qu'en est t-il de la recherche de données dans un tableau ? Pour mener à bien cette tâche nous allons utiliser 3 fonctions PHP mises à notre dispositions :

array_key_exists : fonction qui sert à vérifier si une clé existe dans notre tableau
in_array : fonction qui sert à vérifier si une valeur existe dans notre tableau
array_search : fonction pour récupérer la clé d'une valeur dans notre tableau

Array_key_exists

Comme expliquez ci-dessus cette fonction va nous servir à vérifier si une "clé" figure dans un tableau. Reprenons notre tableau $config[]

CODE PHP


<?php 
$config = 	array(
				'width' => '1000',
				'height' => '500',
                'poids' => '1000'
                );

Recherchons si la clé "width" existe dans notre tableau $config[]

CODE PHP


<?php 
if(array_key_exists('width', $config)) {
echo "La clé width se trouve bien dans le tableau config";
} 
?>

Recherchons si la clé "yipikaiii" existe dans notre tableau $config[]

CODE PHP


<?php 
if(!array_key_exists('yipikaiii', $config)) {
echo "La clé yipikaiii ne se trouve pas dans le tableau config";
}  
?>

Information array_key_exists renvoie une valeur booléene
soit c'est true soit c'est false


In_array

Cette fonction va nous servir à vérifier si une "valeur" existe dans notre tableau

CODE PHP


<?php 
$config = array( 'width' => '1000', 'height' => '500', 'poids' => '1000' );

if(in_array('1000', $config)) {
echo "La valeur 1000 se trouve bien dans le tableau config";
}  

if(in_array('1500', $config)) {
echo "La valeur 1500 ne se trouve pas dans le tableau config";
}  
?>

Information in_array renvoie une valeur booléene
soit c'est true soit c'est false


Array_search

Cette fonction va nous servir à récupérer la "clé" d'une "valeur" de notre tableau

CODE PHP


<?php 
$config = array('width' => '1000','height' => '500','poids' => '200');

$cle = array_search('500', $config);
echo $cle; // Affiche height

$cle = array_search('1000', $config);
echo $cle; // Affiche width

$cle = array_search('Bazinga', $config);
echo $cle; // Affiche rien $cla vaut FALSE

Information array_search renvoie la clé de la valeur si un résultat est trouvé
sinon renvoie false


D'autres commandes bien utiles

Toutes les fonctions de trie

Nom de la fonction Tri par Association clé-valeur Ordre de tri Fonctions associée
array_multisort() valeur associatif oui, numérique non premier tableau, ou bien options de tri array_walk()
asort() valeur oui croissant arsort()
arsort() valeur oui décroissant asort()
krsort() clé oui décroissant ksort()
ksort() clé oui croissant asort()
natcasesort() valeur oui naturel, insensible à la casse natsort()
natsort() valeur oui naturel natcasesort()
rsort() valeur non décroissant sort()
shuffle() valeur non aléatoire array_rand()
sort() valeur non croissant rsort()
uasort() valeur oui Défini par une fonction utilisateur uksort()
uksort() clé oui Défini par une fonction utilisateur uasort()
usort() valeur non Défini par une fonction utilisateur uasort()

 

La documentation officielle des tableaux PHP: array() sur php.net

Notes

  Evaluez le tutorial (1 Votes)

1
0
0

Pour les questions ou d'éventuelles remarques, dirigez vous vers le forum.

Réagir sur ce tutoriel - [Php] Cours 7 – Les tableaux

DERNIÈRES PUBLICATIONS DE OPEN-MOUTHED

En direct de open-mouthed.com