article(s) dans votre panier VOIR

Tuto PHP/MySQL | Filtrer un tableau

  • Vidéo 49 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Filtrer un tableau
00:00 / 03:03
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

Supposons que vous récupériez de nombreuses données dans un tableau. Certaines de ces données sont peut-être erronées ou ne présentent aucun intérêt pour vous. Vous pouvez les filtrer en utilisant la fonction array_filter() :

array_filter($tableau, fonction);

où tableau est le tableau à filtrer et fonction est une chaîne qui représente le nom d'une fonction appliquée à chaque élément du tableau. Si la valeur retournée par la fonction est true, l'élément est retenu. Dans le cas contraire, l'élément n'est pas retenu.

Exemple sur un tableau numéroté

<?php

  function afficheImpair($data){

    return ($data & 1);

}  

 

  $tableau = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

  $tableau_filtre = array_filter($tableau,"afficheImpair");

  foreach($tableau_filtre as $element)

    echo $element."<br>";

?>

Remarque

La fonction afficheImpair() doit retourner une valeur égale à true pour les nombres impairs et à false pour les nombres pairs. En effectuant un ET logique entre l'élément du tableau et 1 ($data & 1), c'est bien ce qui est retourné par la fonction.

Prenons le nombre impair 15. Sa version binaire est 00001111. Si nous effectuons un ET logique avec 00000001, le résultat est différent de 0, et donc égal à true. Prenons le nombre pair 12. Sa version binaire est 00001100. Si nous effectuons un ET logique avec 00000001, le résultat est nul, et donc égal à false. Il est facile d'étendre ce raisonnement à tous les nombres pairs et impairs.

Exemple sur un tableau associatif

Le principe est le même, mais ici, le tableau est filtré sur les valeurs des couples clé=>valeur :

<?php

  function afficheImpair($data){

    return ($data & 1);

}  

 

  $tableau = array("un"=>1, "deux"=>2, "trois"=>3, "quatre"=>4, "cinq"=>5);

  $tableau_filtre = array_filter($tableau,"afficheImpair");

  foreach($tableau_filtre as $cle=>$valeur)

    echo $cle."<br>";

 

?>