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.
<?php $tab = array('Mostafa', 'Mohamed','Mounir'); if(in_array('Mohamed',$tab)){ echo 'trouvé'; }else{ echo 'pas trouvé'; } ?> - Pour savoir si un élément se trouve dans un tableau, utilisez la fonction
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.
<?php $tab = array('Mostafa', 'Mohamed','Mounir'); $pos = array_search('Mohamed',$tab); if($pos!==false){ echo 'trouvé en position '.$pos.'<br>'; }else{ echo 'pas trouvé
'; } ?>- La fonction in_array() vérifie la présence mais ne retourne aucune valeur. Pour cela, utilisez la fonction
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().
<?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 peut retourner, sous forme d’un tableau associatif, le nombre d'occurrences trouvés pour chaque valeur du tableau avec la fonction
Modification d'un élément dans un tableau en PHP
<?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>'; ?>- 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");
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>
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
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élimiteursimplode() 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éparateursplit() 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.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;

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> -
App02

-
- 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