Les tableaux en PHP
Les tableaux en PHP
-
Objectifs
- Etre capable de manipuler les tableaux d’éléments en PHP
-
Qu’est-ce qu’un tableau en PHP ?
- Un tableau est composé d’un certain nombre d’éléments possédant chacun une valeur propre ainsi qu’une clé ou indice, permettant de faire référence à cet élément.
- Les tableaux, aussi appelés arrays en anglais, sont des types de données structurés permettant de grouper des informations ensemble.
- Ne pas confonder avec les tableaux HTML, un tableaux PHP a pour fonction de stocker et manipuler des informations tandis qu’un tableau HTML sert à présenter des données sur un écran.
- Un tableau en PHP est en fait une carte ordonnée. Une carte est un type qui associe des valeurs à des clés.
- Un tableaux en PHP a pour fonction de stocker et manipuler des informations tandis qu’un tableau HTML sert à présenter des données sur un écran.
- Les tableaux représentent un type composé car ils permettent de stocker sous un même nom de variable plusieurs valeurs indépendantes d’un des types de base de PHP.
- En PHP il existe trois types différents de tableaux et chaque valeur de tableau est accessible à l’aide d’un ID appelé index de tableau.
- Tableau numérique : Un tableau avec un index numérique. Les valeurs sont stockées et accessibles de manière linéaire
- Tableau associatif : Un tableau avec des chaînes comme index. Cela stocke les valeurs d’élément en association avec des valeurs de clé plutôt que dans un ordre d’index linéaire strict.
- Tableau multidimensionnel : Un tableau contenant un ou plusieurs tableaux et les valeurs sont accessibles à l’aide de plusieurs index
- Les éléments de ces tableaux peuvent être de type
integer
,double
,boolean
,string
ou mêmearray
, ce qui permet de créer des tableaux de tableaux, c’est-à-dire des tableaux multidimensionnels, ce que PHP ne permet pas explicitement, contrairement à d’autres langages. -
La fonction
array()
- La fonction
array()
permet de créer de manière rapide des tableaux indicés ou associatifs. - Pour déclarer un nouveau tableau, il suffit d’utiliser la structure de langage
array()
. Cette fonction prend en paramètres facultatifs (séparés par une virgule), les valeurs que l’on souhaite insérer dans le tableau pour l’initialiser. Si rien n’est précisé en paramètre, le tableau créé sera vide. - Depuis la version 5.4, elle peut être remplacée par une syntaxe courte en écrivant simplement
[]
à la place de la fonctionarray()
. -
Créer un tableau indicé numériquement :
-
Créer un tableau associatif :
-
Créer un tableau mixte (tableau associatif avec des clés numériques) :
- Il s’agit d’un tableau associatif dans lequel certaines clés sont numériques et d’autres sont des chaînes de caractères.
-
Créer un tableau vide :
-
Utiliser des crochets
[]
: - Vous pouvez également utiliser la syntaxe raccourcie en utilisant des crochets
[]
pour créer un tableau, ce qui est plus courant dans les versions plus récentes de PHP (à partir de PHP 5.4) : - En utilisant cette fonction ou la syntaxe raccourcie, vous pouvez créer des tableaux avec des valeurs numériques, des chaînes de caractères ou des valeurs de tout autre type de données, en fonction de vos besoins.
-
Activité
- Créez un tableau en PHP contenant les noms de cinq pays en utilisant la fonction
array()
. - Réalisez cette tâche de deux manières différentes. Ensuite, affichez ces pays dans un tableau HTML ( vous pouvez utiliser un template bootstrap 5).
-
Les index des tableaux
-
Les index crées automatiquement
- Un tableau est une liste d’éléments,où chaque élément est repéré par un numéro unique. Ce numéro est appelé index et est attribué automatiquement suivant les ordres.
- Pour comprendre les indexes des tableaux prenant l’exemple suivant:
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
- Cette ligne de code garde en mémoire le tableau suivant:
- Les index sont les clés associés à chaque valeur dans un tableau.
- Les index sont les clés des tableaux, ils sont été crées automatiquement.
- Ces types de tableau sont appelés à index numériques.
- Pour plus d’information consultez le cours : les tableaux indexés
-
Les index crées manuellement
- PHP autorise les utilisateurs de définir les index, au lieu de prendre une suite numérique.
$apprenants = array( "Le_premier"=>"Thamer",
"Le_deuxième"=> "Mohamed",
"Le_troisième"=> "Mounira",
"Le_quatrième"=> "Samira",
"Le_cinquième"=> "Tarek" );- Ces types de tableau sont appelés les tableaux associatifs.
- Pour plus d’information consultez le cours : les tableaux associatifs
-
Exemple
-
Création des tableaux
-
Les tableaux à index numériques : array
- La déclaration d’un tableau vide se fait de la même manière qu’une variable, c’est à dire avec un signe dollars (
$
) et un nom. - Le format du nom doit respecter les mêmes règles de déclaration qu’une variable.
- Pour créer des tableaux à index numériques en PHP, on emploi le mot clé
array()
, et on sépare les élément par desvirgules
. - Pour avoir accès à la valeur de chaque élément, on met la variable tableaux suivi de l’indice de l’élément mis entre crochet.
-
Les tableaux associatifs
- Pour créer des tableaux associatifs en PHP, nous utilisons la fonction
array()
et l’opérateur d’association=>
pour associer chaque clé textuelle à une valeur. -
Exemple
-
Exercices d’pplications
-
Exercice 01
- Créer un tableau contenant les nombres premiers inférieures à 100.
- Utiliser une boucle
foreach/for
pour afficher les éléments du tableau (utiliser les balises HTML5). - Écrire un tableau associatif dont les clés sont les numéros des nombres premiers et les valeurs les nombres premiers inférieures à 100.
- Utiliser une boucle
foreach/for
pour afficher les éléments du tableau -
Exercice 02
- Créer un tableau contenant les carrés des nombres de 1 à 10.
-
Exercice 03
Lors de la déclaration d’un tableau en PHP, il est inutile de préciser sa dimension et le type de données qu’il va contenir. PHP s’en charge automatiquement. Les tableaux sont dits dynamiques. A chaque nouvelle entrée enregistrée dans le tableau, PHP agrandit sa taille de 1 élément.
$array = array('apple', 'banana', 'cherry');
$array = array('name' => 'John', 'age' => 30, 'city' => 'New York');
$array = array('name' => 'Alice', 25, 'city' => 'Los Angeles');
// Accéder aux éléments par clé
echo $array['name']; // Affiche 'Alice'
echo $array[0]; // Affiche 25
echo $array['city']; // Affiche 'Los Angeles'
// Parcourir le tableau avec une boucle
foreach ($array as $key => $value) {
echo "$key: $value<br>";
}
$array = array();
$array = ['apple', 'banana', 'cherry'];
Solution
<?php
// Méthode 1 - Tableau à indice numérique
$pays_numerique = array("France", "Allemagne", "Espagne", "Italie", "Royaume-Uni");
// Méthode 2 - Tableau associatif
$pays_associatif = array(
"FR" => "France",
"DE" => "Allemagne",
"ES" => "Espagne",
"IT" => "Italie",
"UK" => "Royaume-Uni"
);
// Affichage du tableau à indice numérique dans une liste à puces HTML
echo "<ul>";
foreach ($pays_numerique as $pays) {
echo "<li>$pays</li>";
}
echo "</ul>";
// Affichage du tableau associatif dans une liste à puces HTML
echo "<ul>";
foreach ($pays_associatif as $code => $pays) {
echo "<li>($code) $pays</li>";
}
echo "</ul>";
?>
0 | Thamer |
---|---|
1 | Mohamed |
2 | Mounira |
3 | Samira |
4 | Tarek |
les tableaux à index numériques
Exemple:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
echo "<h3>Les tableaux à indexe numérique</h3>";
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
echo "<h5>Affichage par élément</h5>";
echo $apprenants[0].'<br>';
echo $apprenants[1].'<br>';
echo $apprenants[2].'<br>';
echo $apprenants[3].'<br>';
echo $apprenants[4].'<br>';
echo "<h3>Affichage avec la boucle for</h3>";
echo "<table border='1'>";
echo "<thead>
<tr>
<th>Indice</th>
<th>Nom</th>
</tr>
</thead>
<tbody>";
for($i=0;$i<count($apprenants);$i++){
echo "<tr><td>$i</td><td>$apprenants[$i]</td></tr>";
}
echo "</tbody></table>";
echo "<h3>Les tableaux associatifs</h3>";
$apprenants = array( "Le_premier"=>"Thamer",
"Le_deuxième"=> "Mohamed",
"Le_troisième"=> "Mounira",
"Le_quatrième"=> "Samira",
"Le_cinquième"=> "Tarek" );
?>
</body>
</html>
Exemple
<?php
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
echo $apprenants[0].'<br>';
echo $apprenants[1].'<br>';
echo $apprenants[2].'<br>';
echo $apprenants[3].'<br>';
echo $apprenants[4].'<br>';
?>
$apprenants = array( "Le_premier"=>"Thamer",
"Le_deuxième"=> "Mohamed",
"Le_troisième"=> "Mounira",
"Le_quatrième"=> "Samira",
"Le_cinquième"=> "Tarek" );
echo $apprenants["Le_premier"].'<br>';
echo $apprenants["Le_deuxième"].'<br>';
echo $apprenants["Le_troisième"].'<br>';
echo $apprenants["Le_quatrième"].'<br>';
echo $apprenants["Le_cinquième"].'<br>';
<?php
// Déclaration d'un tableau vide
$fruits = array();
// Déclaration d'un tableau indexé numériquement
$legumes = array('carotte','poivron','aubergine','chou');
// Déclaration d'un tableau associatif
$identite = array(
'nom' => 'Mohamed',
'prenom' => 'MHAMMDI',
'age' => 19,
'estEtudiant' => Oui
);
?>
Solution
<!doctype html>
<html lang="fr">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<title>Les selecteurs complexes</title>
</head>
<body>
<?php
// Déclaration d'un tableau vide
$nbrPremier = array();
//On prend chaque nombre entre 2 et n (0 et 1 n'étant pas premier)
/*Il est possible de l'optimiser en utilisant les constatation du premier code.
-si un nombre n'est pas paire, (pas divisible par 2 qui est le premier test) il ne sera pas divisible par un nombre paire.
-un nombre ne peut pas être divisible par un nombre supérieur à sa raçine*/
echo "<table border='1'>";
echo "<thead>
<tr>
<th>Indice</th>
<th>Nom</th>
</tr>
</thead>
<tbody>";
for( $i=2; $i<=100;$i++) {
$estPremier = true;
for ($j=2;($j<=$i-1) && $estPremier;$j++) {
if($i%$j==0) {
$estPremier=false;
}
}
if($estPremier) {
$nbrPremier[]=$i;
}
}
$m=0;
foreach($nbrPremier as $nbr){
echo "<tr><td>$m</td><td>$nbr</td></tr>";
$m++;
}
/* for($m=0;$m<count($nbrPremier);$m++){
echo "<tr><td>$m</td><td>$nbrPremier[$m]</td></tr>";
}*/
echo "</tbody></table>";
?>
</body>
</html>
Solution
$squares = array();
for ($i = 1; $i <= 10; $i++) {
$squares[] = $i * $i;
}
// Afficher les éléments du tableau avec une boucle foreach.
foreach ($squares as $square) {
echo $square . "
";
}
Solution
- Références:
- https://www.php.net
- Livre PHP7 Cours et exercices Jean Engels 2e édition
- Technologies de l’Information et de la Communication 4 année secondaire