Back
Close

Le PHP - Les bases du langage

profThiernesse
2,693 views

Les tableaux

Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs à des clés. On parlera de tableau associatif. Pour définir un tableau, on utilise le mot-clé array ou les [ ].

Les clés dans un tableau peuvent être de deux types :

  1. numérique ;
  2. chaîne de caractères.

Un même tableau peut utiliser à la fois des clés numériques et des clés chaînes de caractères.

<?php
$tab1 = array(1, 2, 3);
$tab2 = array("un" => 1, "deux" => 2, "trois" => 3);
$tab3 = array(1, "deux" => 2, 3);
var_dump($tab1);
var_dump($tab2);
var_dump($tab3);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

L'ordre dans lequel sont rangées les clés numériques ne dépend pas de la valeur numérique mais de l'ordre de définition. De même, toutes les valeurs de clés numériques ne doivent pas obligatoirement exister.

<?php
$tab[0]=1;
$tab[3]=5;
$tab[7]=3;
$tab[1]=7;
$tab[5]=1;
var_dump($tab);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Les types dans les tableaux

Les tableaux sont construits de la composition d'une ou plusieurs variables de type scalaire (boolean, integer, float et string) ou de type composé.

Une grande différence avec un langage comme le C est qu'un tableau peut contenir simultanément différents types de variables.

<?php
$tab["chaine"] = "Bonjour";
$tab["booleen"] = true;
$tab["entier"] = 5;
$tab["decimal"] = 5.6;
var_dump($tab);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Tableaux multidimensions

Comme précisé ci-dessus, un tableau peut contenir des types scalaires et/ou des types composés. Un tableau multidimensionnel est un tableau contenant d'autres tableaux. Contrairement à un langage comme le C, le tableau n'a pas nécessairement la même dimension sur chacune de ses entrées. Cela vient du fait que chaque entrée peut posséder des types différents.

<?php
$tab = array(
array(1,2,3),
"ma_table" => array("ce","que","je","veux"),
"clé" => array(1,"deux","trois", 7 => 7),
array("chaine",true),
"un simple scalaire"
);
var_dump($tab);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Opérateurs

ExempleNomRésultat
$a + $bUnionUnion de $a et $b.
$a == $bEgalitéTRUE si $a et $b contiennent les mêmes paires clés/valeurs.
$a === $bIdentiqueTRUE si $a et $b contiennent les mêmes paires clés/valeurs dans le même ordre et du même type.
$a != $bInégalitéTRUE si $a n'est pas égal à $b.
$a <> $bInégalitéTRUE si $a n'est pas égal à $b.
$a !== $bNon-identiqueTRUE si $a n'est pas identique à $b.
<?php
$a = array("a" => "pomme", "b" => "banane");
$b = array("b" => "banane", "a" => "pomme");
var_dump($a==$b);
var_dump($a===$b);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

L'opérateur + retourne le tableau de gauche auquel sont ajoutés les éléments du tableau de droite. Pour les clés présentes dans les 2 tableaux, les éléments du tableau de gauche seront utilisés alors que les éléments correspondants dans le tableau de droite seront ignorés.

<?php
$a = array("a" => "pomme", "b" => "banane");
$b = array("a" =>"poire", "b" => "fraise", "c" => "cerise");
$c = $a + $b; // Union de $a et $b
echo "Union de \$a et \$b : \n";
var_dump($c);
$c = $b + $a; // Union de $b et $a
echo "Union de \$b et \$a : \n";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants