111 lines
3.8 KiB
PHP
111 lines
3.8 KiB
PHP
<?php
|
|
/**
|
|
* Tuto sur les tableaux
|
|
*
|
|
* @author Jérémi Nihart <contact@endmove.eu>
|
|
* @copyright © 2021 EndMove, Tous droits réservés.
|
|
* @link https://www.endmove.eu/
|
|
*
|
|
* @version 1.0
|
|
*/
|
|
|
|
// Rappel: var_dump() est une fonction de débugage (voir PHP.net).
|
|
// Tips: - pour rendre un var_dump() lisible dans le navigateur web
|
|
// on peut l'entourer des balises HTML5 <pre> et </pre>.
|
|
// - Il existe pleins de méthodes pour les tableaux voir doc.
|
|
|
|
|
|
# Les tableaux simples
|
|
#
|
|
# Il existe plusieurs façons de définir un tableau, en utilisant la méthode/fonction
|
|
# array() et ou en utilisant les crochets []. En PHP les tableaux peuvent être mixte
|
|
# cela signifie qu'il peuvent contenir plusieurs type de variable (string, int, ...)
|
|
# <!> dans la plus part des autres languages les tableaux sont et doivent être gomogène <!>
|
|
#
|
|
# @Exemple de tableaux simples :
|
|
$tab1 = array('$tab1 by using array()', 'a', 'b', 'c', 1, 2, 3);
|
|
$tab2 = ['$tab2 by using brackets', 'd', 'e', 'f', 4, 5, 6];
|
|
|
|
# Affichage des tableaux simples ?>
|
|
<h2>Contenu de $tab1</h2>
|
|
<pre><?php var_dump($tab1); ?></pre>
|
|
|
|
<h2>Contenu de $tab2</h2>
|
|
<pre><?php var_dump($tab2); ?></pre>
|
|
|
|
<?php
|
|
# Les Tableaux imbriqués
|
|
#
|
|
# Il est possible de placer un tableau dans un tableau.
|
|
# On peut aussi placer un tableau dans un tableau dans un tableau...
|
|
# Si on souhaite ajouter de manière automatique un élément à la fin d'un tableau
|
|
# on peut utiliser les crochets vide sur la variable (ex: $tab1[] = 'new item').
|
|
# |-> attention lors d'un ajout de cette manière le tableau prend l'index le plus grand
|
|
# | et l'incrémente de un (l'index est un autre terme pour dire position).
|
|
#
|
|
# @Exemple de tableau imbriqué (placer $tab2 dans $tab1 'et à la fin')
|
|
$tab1[] = $tab2;
|
|
|
|
# Si on affiche maintenant $tab1 on voit qu'un septième index contenant le tableau 2
|
|
# a été automatiquement crée : ?>
|
|
<h2>Contenu de $tab1</h2>
|
|
<pre><?php var_dump($tab1); ?></pre>
|
|
|
|
<?php
|
|
# Récupérer un item dans un tableau
|
|
#
|
|
# Pour récupérer un item il faut simplement utiliser les crochets.
|
|
#
|
|
# Exemples :
|
|
# $tab2[0] => '$tab2 by using brackets'
|
|
# $tab1[5] => 2
|
|
# $tab1[7] => $tab2
|
|
# |-> <!> donc si l'index 7 donne un tableau on peut utiliser
|
|
# | deux fois des crochèt 1x sur tab1 et 1x sur tab2 <!>
|
|
# $tab1[7][0] => '$tab2 by using brackets'
|
|
?>
|
|
<h2>Contenu de l'index 7 de $tab1</h2>
|
|
<pre><?php var_dump($tab1[7]); ?></pre>
|
|
|
|
<h2>Contenu de l'index 0 du tableau de l'index 7 de $tab1</h2>
|
|
<pre><?php var_dump($tab1[7][0]); ?></pre>
|
|
|
|
<?php
|
|
# Choisir les clées de son tableau
|
|
#
|
|
# array('key1' => 'value1', 'key2' => 'value2');
|
|
#
|
|
# @Exemples de tableau avec clé personnalisé
|
|
$tab3 = array(
|
|
'prénom' => 'Jérémi',
|
|
'nom' => 'Nihart',
|
|
'age' => 19
|
|
);
|
|
|
|
# Ajout de tous les tableaux dans un tab4 :
|
|
$tab4 = array(
|
|
'clé du tableau 1' => $tab1,
|
|
'clé du tableau 2' => $tab2,
|
|
'mon tableau 3' => $tab3
|
|
);
|
|
?>
|
|
<h2>Contenu de $tab3</h2>
|
|
<pre><?php var_dump($tab3); ?></pre>
|
|
|
|
<h2>Contenu de $tab4</h2>
|
|
<pre><?php var_dump($tab4); ?></pre>
|
|
|
|
<?php
|
|
# Notes: 1. Il est très mauvais de mélanger des index textuel et numérique !
|
|
# 2. Si on supprime un élément d'un tableau l'index est supprimer mais les autres
|
|
# index ne change pas on a donc un trou ce qui peut engendrer des problème lors
|
|
# d'utilisation de boucle ! Dans la plus part des autres language, lors de la
|
|
# suppression d'un index tous les élément sont réindexé.
|
|
#
|
|
# @Exemple du cas n°2 (supprime la lettre 'e' index 2 de tab2) :
|
|
unset($tab2[2]);
|
|
|
|
# Si on affiche maintenant tab2 on peut voir que la lettre 'e' a été supprimé mais aussi
|
|
# qu'il manque l'index 2, en effet nous venons de le supprimer...?>
|
|
<h2>Contenu de $tab2 avec la lettre 'e' supprimée</h2>
|
|
<pre><?php var_dump($tab2); ?></pre>
|