Web Dynamique - PHP - Chap 2 - Tableaux

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 30

---------------

Tableaux
---------------
PHP: Tableaux
• Les tableau représentent la structure de données la plus
importante du langage PHP.
• Les tableaux possèdent une seule dimension.
• La seule manière de construire des tableaux multidimensionnel
est d’utiliser des tableaux de pointeurs.
• Les éléments d’un tableau peuvent appartenir à des types
distincts.
PHP: Tableaux
• L’indexation d’un tableau commence toujours à l’indice 0.
• Il n’y a pas de limite pour la dimension d’un tableau.
• La fonction count() pour avoir le nombre d’éléments d’un
tableau.
• Deux types d’indexation:
o indexage numérique
o indexage associatif
PHP: Tableaux
• Indexation numérique
o Indexation explicite
$couleur[0]="blanc", $couleur[1]="bleu", $couleur[2]="rouge";
PHP: Tableaux
• Indexation numérique
o Indexation explicite
$couleur[0]="blanc", $couleur[1]="bleu", $couleur[2]="rouge";
o Indexation automatique
$couleur[] = "blanc", $couleur[] = "bleu", $couleur[] = "rouge";
PHP: Tableaux
• Indexation numérique
o Indexation explicite
$couleur[0]="blanc", $couleur[1]="bleu", $couleur[2]="rouge";
o Indexation automatique
$couleur[] = "blanc", $couleur[] = "bleu", $couleur[] = "rouge";
o Avec array sans indice
$couleur = array("blanc", "bleu", "rouge");
PHP: Tableaux
• Indexation numérique
o Indexation explicite
$couleur[0]="blanc", $couleur[1]="bleu", $couleur[2]="rouge";
o Indexation automatique
$couleur[] = "blanc", $couleur[] = "bleu", $couleur[] = "rouge";
o Avec array sans indice
$couleur = array("blanc", "bleu", "rouge");
o Avec array + indice
$couleur = array(5=>"blanc", "bleu", "rouge");
PHP: Tableaux
• Indexation associative (hachage) : Les éléments sont référencés
par des chaînes de caractères associatives en guise de nom (la
clé d’index).
-------------------------------
$tableau["indice"] = valeur;
$jour["Dimanche"] = 7; $jour["Vendredi"] = "Fin de semaine";
-------------------------------
PHP: Tableaux
• Indexation associative (hachage) : Les éléments sont référencés
par des chaînes de caractères associatives en guise de nom (la
clé d’index).
-------------------------------
$tableau["indice"] = valeur;
$jour["Dimanche"] = 7; $jour["Vendredi"] = "Fin de semaine";
-------------------------------
$tableau = array(ind0 => val0, ind1 => val1,..., indN => valN);
$jour = array("Lundi" => 1, "Mardi" => 2, "Mercredi" => 3);
-------------------------------
PHP: Tableaux
• Indexation associative (hachage) : Les éléments sont référencés
par des chaînes de caractères associatives en guise de nom (la
clé d’index).
-------------------------------
$tableau["indice"] = valeur;
$jour["Dimanche"] = 7; $jour["Vendredi"] = "Fin de semaine";
-------------------------------
$tableau = array(ind0 => val0, ind1 => val1,..., indN => valN);
$jour = array("Lundi" => 1, "Mardi" => 2, "Mercredi" => 3);
-------------------------------
$variable = $tableau["indice"];
$JJ = $jour["Lundi"]; //affecte 1 à $JJ
echo $jour["Lundi"]; //retourne la valeur 1
PHP: Tableaux
<?php
$couleur[] = "blanc"; $couleur[] = "bleu";
$couleur[] = "rouge";
echo "$couleur[2]";
$couleur2 = array("blanc", "bleu", "rouge");
echo "<br /> $couleur2[2]";
$couleur3 = array(5=> "blanc", "bleu", "rouge");
echo "<br /> $couleur3[6]";
$personne = array("nom"=> "Alaoui", "prenom"=> "Ahmed");
echo "<br />$personne[prenom]";
$couleur4 = array(1=> "blanc", 3=> "bleu", 5=> "rouge");
echo "<br />$couleur4[5]";
?>
PHP: Tableaux
• Pas d'outils pour créer directement des tableaux
multidimensionnels.
• L'imbrication des tableaux est possible.
$tab1 = array(Val0, Val1,..., ValN);
$tab2 = array(Val0, Val1,..., ValN);
// Création d'un tableau à deux dimensions
$tableau = array($tab1, $tab2);
PHP: Tableaux
• Tableaux multidimensionnels :

<?php
$mois = array ("Jan", "Fév", "Mar", "Avr", "Mai", "Jun" ,"Jul",
"Aou", "Sep", "Oct", "Nov", "Déc");
$jour = array("Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam");
$Tdate = array($mois, $jour); // Tableaux à 2 dimensions
?>
PHP: Tableaux
• Tableaux multidimensionnels :

<?php
$mois = array ("Jan", "Fév", "Mar", "Avr", "Mai", "Jun" ,"Jul",
"Aou", "Sep", "Oct", "Nov", "Déc");
$jour = array("Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam");
$Tdate = array($mois, $jour); // Tableaux à 2 dimensions
// $variable = $tableau[indice][indice];
$M = $Tdate[0][0];
echo $Tdate[1][5] . " 7 " . $Tdate[0][2] . "2002";
?>
PHP: Tableaux
• Lecture des éléments d’un tableau : Avec une boucle for
<?php
for ($i=0; $i<count($tab) ; $i++){
if ($tab[$i]== "a") echo $tab[$i], "<br/>";
}
?>

• Lecture des éléments d’un tableau : Avec une boucle while


<?php
$i=0;
while ($tab[$i]){
if ($tab[$i][0] =="a" ) echo $tab[$i], "<br /> "; }
?>
PHP: Tableaux
• Lecture des éléments d’un tableau : Avec une boucle foreach
<?php
$jour = array("Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam");
$i = 0;
foreach($jour as $JJ) {
echo "La cellule numéro ". $i . " : " . $JJ . "<br>";
$i++; }
?>
PHP: Tableaux
• Lecture des éléments d’un tableau associatif :
$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur) {
echo "Valeur ($clé): $valeur";
}
PHP: Tableaux
• Lecture des éléments d’un tableau associatif :
$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur) {
echo "Valeur ($clé): $valeur";
}

<?php
$jour = array("Dim" => 7, "Lun" => 1, "Mar" => 2, "Mer"
=> 3, "Jeu" => 4, "Ven" => 5, "Sam" => 6);
foreach($jour as $NomJ => $NumJ) {
echo "Le jour n°".$.NumJ" : ".$NomJ."<br>";
}
?>
PHP: Tableaux
• Lecture des éléments d’un tableau en utilisant la fonction
var_dump() :

<?php
$a = array(1, 2, array("a", "b", "c"));
$b = array("Dim" => 7, "Lun" => 1, "Mar" => 2, "Mer"
=> 3, "Jeu" => 4, "Ven" => 5, "Sam" => 6);
var_dump($a);
var_dump($b);
?>
PHP: Tri des Tableaux
• La fonction sort() effectue un tri sur les valeurs des éléments
d’un tableau selon un critère ( "a" est après "Z" et "10" est
avant "9").
• Le tableau initial est modifié et non-récupérables dans son
ordre original .
• Pour les tableaux associatifs, les clés seront perdues et
remplacées par un indice créé après le tri et commençant à 0 .
PHP: Tri des Tableaux
• La fonction rsort() effectue la même action mais en ordre
inverse des codes ASCII.
• La fonction asort() trie également les valeurs selon le critère
des codes ASCII, mais en préservant les clés pour les tableaux
associatifs.
• La fonction arsort() la même action mais en ordre inverse des
codes ASCII.
• la fonction natcasesort() effectue un tri en ordre alphabétique
non selon code ASCII ("a" est avant "z" et "10" est après "9").
PHP: Tri des Tableaux
• La fonction ksort() trie les clés du tableau selon le critère des
codes ASCII, et préserve les associations clé /valeur.
• La fonction krsort() effectue la même action mais en ordre
inverse des codes ASCII.
<?php
$tab = array ("1622"=>"Molière","1802"=>"Hugo","1920"=>"Vian");
ksort ($tab);
foreach ($tab as $cle=>$val) {
echo "<b> Clé : $cle; Valeur : $val </b> <br />";
}
?>
PHP: Fonctions des Tableaux
• $tableau = array_count_values($variable);
retourne un tableau comptant le nombre d'occurrences des
valeurs d'un tableau.
• $tableau = array_diff($var_1, $var_2, ..., $var_N);
retourne un tableau contenant les valeurs différentes entre
deux ou plusieurs tableaux, qui sont présents dans le premier
tableau mais pas dans les autres.
• $tableau = array_intersect($var_1, $var_2, ..., $var_N);
retourne un tableau contenant les enregistrements communs
aux tableaux entrés en argument.
PHP: Fonctions des Tableaux
• $tableau = array_flip($variable);
intervertit les paires clé/valeur dans un tableau.
• $tableau = array_keys($variable,$valeur);
retourne toutes les clés d'un tableau, ou les emplacements
d'une valeur dans un tableau.
• $tableau = array_map('fonction‘,$var_1 , $var_2, ..., $var_N);

applique une fonction à un ou plusieurs tableaux.


PHP: Fonctions des Tableaux
• $tableau = array_merge($var_1, $var_2, ..., $var_N);
enchaîne des tableaux entrés en argument afin d'en retourner
un unique.
• $tableau = array_merge_recursive($var1,$var2,...,$varN);
enchaîne des tableaux en conservant l'ordre des éléments dans
le tableau résultant. Dans le cas de clés communes, les valeurs
sont placées dans un tableau.
PHP: Fonctions des Tableaux
• true | false = array_multisort($var, critère1, critère2 , ...,
$var_N, critère1, critère2);
trie 1/plusieurs tableaux ( ordre = SORT_ASC /
SORT_DESC), avec une comparaison alphabétique,
numérique ou de chaîne de caractères (SORT_REGULAR,
SORT_NUMERIC ou SORT_STRING).
<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
?>
PHP: Fonctions des Tableaux
• true | false = array_multisort($var, critère1, critère2 , ...,
$var_N, critère1, critère2);
trie 1/plusieurs tableaux ( ordre = SORT_ASC /
SORT_DESC), avec une comparaison alphabétique,
numérique ou de chaîne de caractères (SORT_REGULAR,
SORT_NUMERIC ou SORT_STRING).
<?php
$ar = array( array("10", 11, 100, 100, "a"),
array(1, 2, "2", 3, 1) );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
PHP: Fonctions des Tableaux
• $tableau = array_pad($variable, taille, valeur);
Complète un tableau avec une valeur jusqu'à la longueur
spécifiée.

<?php
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
Var_dump($result);
$result = array_pad($input, -7, -1);
Var_dump($result);
?>
PHP: Fonctions des Tableaux
• $tableau = array_filter($variable, "fonction");
retourne un tableau contenant les enregistrements filtrés d'un
tableau à partir d'une fonction.
<?php
function impair($var){ return ($var % 2 == 1); }
function pair($var){ return ($var % 2 == 0); }
$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);
echo "Impairs :\n"; print_r(array_filter($array1, "impair"));
echo "Pairs :\n"; print_r(array_filter($array2, "pair"));
?>
PHP: Fonctions des Tableaux
Imaginez que vous avez un tableau associatif en PHP contenant des informations sur
des employés d'une entreprise. Chaque entrée du tableau a les propriétés suivantes :
id (identifiant de l'employé, un nombre entier unique pour chaque employé).
nom (nom de l'employé).
salaire (salaire de l'employé en Dirhams).

• Créez un tableau associatif contenant au moins 5 employés avec leurs informations.


• Trouvez l'employé ayant le salaire le plus élevé.
• Calculez la moyenne des salaires de tous les employés.
• Triez le tableau en fonction des salaires, du plus bas au plus élevé.
• Ajoutez un nouveau champ "prime" à chaque employé. La prime est égale à 10% de
leur salaire.
• Trouvez l'employé ayant la plus grande prime.
• Calculez la somme totale des salaires et des primes de tous les employés.
• Affichez la liste des employés triée par ordre alphabétique du nom.
• Affichez la liste des employés triée par ordre alphabétique inverse du nom.

Vous pouvez utiliser des fonctions telles que array_filter, array_map, array_reduce,
array_multisort, usort, array_sum, array_column, …

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy