Opération sur les tableaux en PHP
Sommaire
- 1- Objectifs
- 2- Recherche d'éléments dans un tableau en PHP
- 2.1- La fonction
in_array()
- 2.2- La fonction
array_search()
- 2.3- La fonction
array_count_values()
- 3- Modification d'un élément dans un tableau en PHP
- 4- Ajout d'élément
- 4.1- Ajout d'élément au début du tableau
- 4.2- Ajout d'élément à la fin du tableau
- 5- Retrait d'élément
- 5.1- Supprimer le premier élément d'un tableau
- 5.2- Supprimer le dernier élément d'un tableau
- 6- Fonctions natives pour manipuler les tableaux en PHP
- 6.1- count() et sizeof()
- 6.2- sort()
- 6.3- rsort()
- 6.4- in_array()
- 6.5- array_rand()
- 6.6- current()
- 7- Fonctions spécifiques utilisables avec les tableaux
- 8- Application
- 8.1- App01
- 8.2- App02
- 8.2.1- Cours PHP
Opération sur les tableaux en PHP
-
Objectifs
- Être capable de faire des mise à jour sur les tableaux en PHP
-
Recherche d’éléments dans un tableau en PHP
- Php propose plusieurs fonctions pour vérifier la présence d’un ou des éléments dans un tableau, récupérer des clés, rechercher le nombre d’occurrences d’éléments trouvés…
-
La fonction
in_array()
- Pour savoir si un élément se trouve dans un tableau, utilisez la fonction
in_array()
qui prend en premier paramètre la valeur à rechercher et en deuxième paramètre le tableau où effectuer la recherche. -
La fonction
array_search()
- La fonction in_array() vérifie la présence mais ne retourne aucune valeur. Pour cela, utilisez la fonction
array_search()
qui fonctionne comme in_array() mais qui retourne la clé de la valeur recherchée. -
La fonction
array_count_values()
- Php peut retourner, sous forme d’un tableau associatif, le nombre d’occurrences trouvés pour chaque valeur du tableau avec la fonction
array_count_values()
. -
Modification d’un élément dans un tableau en PHP
- Pour modifier le texte « Mounira » par « Noura » en écrit:
-
$apprenants[2]="Noura";
- Nom du table[indice de l’élément à changer]=le nouveau élément
-
Ajout d’élément
-
Ajout d’élément au début du tableau
- La fonction array_unshift() de PHP () ajoute de nouveaux éléments au début d’un tableau et renvoie la nouvelle longueur.
- Syntaxe
-
array_unshift(valeur1, valeur2, ..., valeurX)
- Pour ajouter un élément au tableau utilisez le mot clé array_unshift
-
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
- Ajoutez le nom « Marwen » à votre tableau
-
array_unshift($apprenants,"Marwen");
-
Ajout d’élément à la fin du tableau
- La fonction array_push () ajoute de nouveaux éléments à la fin d’un tableau et renvoie la nouvelle longueur.
- Syntaxe
-
array_push(valeur1, valeur2, ..., valeurX)
- Pour ajouter un élément au tableau utilisez le mot clé array_push
-
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
- Ajoutez le nom « Marwen » à la fin de votre tableau
-
array_push($apprenants,"Marwen");
-
Retrait d’élément
-
Supprimer le premier élément d’un tableau
- La fonction array_shift () supprime le premier élément d’un tableau et renvoie cet élément.
- Syntaxe
-
array_shift()
- Pour supprimer le premier élément d’un tableau utilisez le mot clé array_shift
-
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
- Supprimez le le dernier élément du tableau
-
array_shift($apprenants);
-
Supprimer le dernier élément d’un tableau
- La méthode array_pop () supprime le dernier élément d’un tableau et renvoie cet élément.
- Syntaxe
-
array_pop()
- Pour supprimer le dernier élément d’un tableau utilisez le mot clé pop
-
$apprenants = array( "Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
- Supprimez le le dernier élément du tableau
-
array_pop($apprenants);
-
Fonctions natives pour manipuler les tableaux en PHP
-
count() et sizeof()
- retournent toutes les deux la taille du tableau passé en paramètre.
-
sort()
- trie les éléments d’un tableau du plus petit au plus grand.
-
rsort()
- trie les éléments d’un tableau du plus grand au plus petit.
-
in_array()
- permet de vérifier qu’une valeur est présente dans un tableau.
-
array_rand()
- extrait une ou plusieurs valeurs du tableau au hasard.
-
current()
- retourne la valeur de l’élément courant du tableau (où se trouve le pointeur)
-
Fonctions spécifiques utilisables avec les tableaux
-
Application
-
App01
- Écrire les fonctions PHP qui permettent de:
- 1- Remplir un tableau de 10 cases (notes) avec des nombres aléatoires allant de 1 à 20. Mais ce tableau ne doit pas contenir de doublon.
- 2-Afficher toutes les notes du tableau (cas général),
- 3-Calculer la moyenne des notes contenus dans le tableau (cas général),
- 4-Indiquer combien d’éléments sont supérieurs ou égaux à 10,
- 5-Tester si la note 20 est présente ou non,
- 6-Détermine la meilleure note obtenue.
- 7-Mettre en forme le tableau pour obtenir une page similaire à celle de la figure ci-contre;
-
App02
<?php
$tab = array('Mostafa', 'Mohamed','Mounir');
if(in_array('Mohamed',$tab)){
echo 'trouvé';
}else{
echo 'pas trouvé';
}
?>
<?php
$tab = array('Mostafa', 'Mohamed','Mounir');
$pos = array_search('Mohamed',$tab);
if($pos!==false){
echo 'trouvé en position '.$pos.'<br>';
}else{
echo 'pas trouvé
';
}
?>
<?php
$tab = array("Thamer", "Mohamed", "Mounira", "Samira", "Tarek" );
$occ = array_count_values($tab);
//Affichage avec la fonction print_r
print_r(array_count_values($tab));
//Affichage avec la boucle foreach
foreach($tab as $cle=>$valeur){
echo "$cle=>$valeur"."<br>";
}
?>
<?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>';
?>
Exemple:
<!DOCTYPE html >
<html lang="fr">
<head>
<title>Les structures de contrôle en PHP</title>
<meta ="UTF-8">
</head>
<body>
<?php
echo "Affichage du tableau avant modification";
$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>';
echo "Affichage du tableau aprés modification";
$apprenants[2]="Noura";
echo $apprenants[0].'<br>';
echo $apprenants[1].'<br>';
echo $apprenants[2].'<br>';
echo $apprenants[3].'<br>';
echo $apprenants[4].'<br>';
echo "Affichage du tableau aprés insertion";
array_unshift($apprenants,'Marwen','ali');
print_r($apprenants);
?>
</body>
</html>
Fonction | Description |
---|---|
array_change_key_case | Retourne un tableau dont toutes les clés ont été forcées en majuscules ou minuscules. |
array_chunk | Sépare un tableau en tableaux de taille inférieure |
array_count_values | Compte le nombre de valeurs dans un tableau |
array_diff | Calcule la différence entre deux tableaux |
array_fill | Remplit un tableau avec une même valeur (PHP 5) |
array_filter | Filtre les éléments d’un tableau |
array_flip | Remplace les clés par les valeurs, et les valeurs par les clés |
array_intersect | Calcule l’intersection de tableaux |
array_key_exists | Cherche si une valeur ou une clé existe dans le tableau |
array_keys | Retourne toutes les clés d’un tableau |
array_map | Applique une fonction sur des tableaux |
array_merge_recursive | Combine plusieurs tableaux ensembles, récursivement |
array_merge | Rassemble plusieurs tableaux dans un autre tableau |
array_multisort | Tri multi-dimensionnel |
array_pad | Complète un tableau jusqu’à la longueur spécifiée, avec une valeur. |
array_pop | Dépile un élément de la fin d’un tableau |
array_push | Empile un ou plusieurs éléments à la fin d’un tableau |
array_rand | Prend une ou plusieurs valeurs, au hasard dans un tableau |
array_reduce | Réduit itérativement un tableau |
array_reverse | Renverse l’ordre des éléments d’un tableau |
array_search | Recherche dans un tableau la clé associée à une valeur |
array_shift | Dépile (enlève) un ou plusieurs élément au début d’un tableau |
array_slice | Extrait une portion de tableau |
array_splice | Efface et remplace une portion de tableau |
array_sum | Calcule la somme des valeurs du tableau |
array_unique | Dédoublonne un tableau |
array_unshift | Empile (rajoute) un ou plusieurs éléments au début d’un tableau |
array_values | Retourne les valeurs d’un tableau réindexées avec des entiers |
array_walk | Exécute une fonction sur chacun des membres d’un tableau. |
array | Crée un tableau |
arsort | Trie un tableau en ordre inverse |
asort | Trie un tableau en ordre |
compact | Crée un tableau contenant les variables et leur valeur |
count | Compte le nombre d’éléments d’un tableau |
current | Transforme une variable en tableau |
each | Retourne chaque paire clé/valeur d’un tableau |
end | Positionne le pointeur de tableau en fin de tableau |
extract | Importe les variables dans la table des symboles |
in_array | Indique si une valeur appartient à un tableau |
key | Retourne une clé d’un tableau associatif |
krsort | Trie un tableau en sens inverse et suivant les clés |
ksort | Trie un tableau suivant les clés |
list | Transforme une liste de variables en tableau |
natcasesort | Tri d’un tableau avec l’algorithme à « ordre naturel » insensible à la casse |
natsort | Tri d’un tableau avec l’algorithme à « ordre naturel » |
next | Avance le pointeur interne d’un tableau |
pos | Retourne l’élément courant d’un tableau |
prev | Recule le pointeur courant de tableau |
range | Crée un tableau contenant un intervalle d’éléments |
reset | Remet le pointeur interne de tableau au début |
rsort | Trie en ordre inverse |
shuffle | Mélange les éléments d’un tableau |
sizeof | Retourne le nombre d’élément d’un tableau |
sort | Trie le tableau |
uasort | Trie d’un tableau en utilisant une fonction de comparaison définie par l’utilisateur. |
uksort | Trie un tableau par ses clés en utilisant une fonction de comparaison définie par l’utilisateur |
usort | Trie un tableau en utilisant une fonction de comparaison définie par l’utilisateur |
is_array() | Pour savoir si une variable est un tableau |
explode() | array explode ( string separator, string string [, int limit]) Retourne un tableau qui contient les éléments d’une chaîne contenant des délimiteurs |
implode() | string implode ( string glue, array pieces) Retourne une chaîne constituée de tous les éléments du tableau, pris dans l’ordre, transformés en chaîne, et séparés par le séparateur |
split() | array split ( string pattern, string string [, int limit]) Scinde une chaîne en un tableau, grâce à une expression régulière. |
join() | string join ( string glue, array pieces) Regroupe tous les éléments d’un tableau dans une chaîne, avec une chaîne de jointure. |
Solution
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Vos tables de multiplication</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php
// Remplissage du tableau
function uniq_rand($min,$max,$tab,$i)
{
do {
$rand=rand($min,$max);
echo $rand." : $i Haut <br>";
}while(in_array($rand,$tab));
return $rand;
}
// affichage d'un tableau
function affiche_tableau ($tableau) {
echo "<h3>Tableau des notes:</h3>";
echo "<table border='1' width='200px'><thead> <tr bgcolor='silver'><th>Etudiants</th><th>Notes</th></tr></thead><tbody>";
for ($i=0 ; $i<sizeof($tableau) ; $i++) {
echo "<tr><td>Etudiant".($i+1)."</td><td align='center'>$tableau[$i]</td></tr>";
}
echo "</tbody></table>";
}
// calcul de la moyenne des éléments du tableau t
function moyenne ($t) {
$somme = 0;
for ($i=0 ; $i<sizeof($t) ; $i++) {
$somme = $somme + $t[$i];
}
echo '<font size="6px"> La moyenne vaut </font><font size="8px" color="blue">',($somme/sizeof($t)),"</font><br>";
}
// combien ont eu la moyenne dans un tableau de notes t (cas général)
function onteulamoyenne ($t) {
$fois = 0;
for ($i=0 ; $i<sizeof($t) ; $i++) {
if ($t[$i]>=10) {
$fois = $fois + 1;
}
}
echo '<font size="8px" color="blue">'.$fois.' </font><font size="6px">Etudiant ont eu la moyenne</font><br>';
}
// meilleure note
function notemax ($t) {
$max = 0;
for ($i=0 ; $i<sizeof($t) ; $i++) {
if ($t[$i] > $max) {
$max = $t[$i];
}
}
echo "<font size='6px'>La note maximale est </font><font size='8px' color='blue'>$max</font><br>";
}
// teste si quelqu'un a eu 20
function ya20 ($t) {
/*$i = 0;
while (($i<sizeof($t)) && ($t[$i]!=20)) {
$i = $i+1;
}*/
$nbr20=count(array_keys($t, 20));
if ($nbr20>0) {
echo "<font size='8px' color='blue'>".$nbr20."</font> <font size='6px'>étudiants ont eu 20 !</font><br>";
} else {
echo "<font size='6px'>personne n'a eu 20 !</font><br>";
}
}
$notes = array();
for($i=0;$i<10;$i++)
$notes[] = uniq_rand(1, 20,$notes,$i);
echo "<table><tr><td>";
affiche_tableau($notes);
echo "</td><td width='8px'></td><td>";
// moyenne de la promo
moyenne($notes);
// combien de personnes ont eu la moyenne ?
onteulamoyenne($notes);
// quelle est la note maximale obtenue ?
notemax($notes);
// est-ce quelqu'un a eu 20 ?
ya20($notes);
echo "</td></tr></table>";
?>
</body>
</html>
- 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