Back

Opération sur les tableaux en PHP

Opération sur les tableaux en PHP

  1. Objectifs

    • Être capable de faire des mise à jour sur les tableaux en PHP
  2. 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é';
        }
        ?>
        
      • 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 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>";
        }
        ?>
        
  3. 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
  4. 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");
  5. 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);
  6. 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)
  7. 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é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.
  8. 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;

        Opération sur les tableaux en PHP

        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
      • Opération sur les tableaux en PHP

  • 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



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement