Un critère de sélection dans foreach !!

Résolu
Sami -  
 Sami -
Bonjour, je voudrais ajouter un critère de sélection dans un foreach, je voudrais uniquement récupérer les lignes où :

$value == 10 et par ordre d'id décroissant.

Merci à celui qui aura la réponse.

5 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Difficile de te répondre avec si peux d'informations ....

    D'où proviennent tes valeurs ?
    Que contient ton foreach ?
    Où se trouve le $value ?

    et puis...
    je voudrais uniquement récupérer

    Récupérer dans quoi ? comment ? pour en faire quoi ???

    Sachant que
    je voudrais ajouter un critère de sélection

    ... tu veux dire un IF tout simplement non ??
    0
  2. Yuh12 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   24
     
    Bonjour,

    Tu peux créer un tableau vide avant ton foreach.
    A l'intérieur du foreach tu met ta condition à l'aide d'un if.
    A l'intérieur tu remplis ton tableau vide des éléments qu'il te faut.
    $tableau_tri = array();
    foreach ($table_elements as $key => $value) {
    	if($value == 10){
    		$tableau_tri[]=$value;
    	}
    }
    

    Ensuite voici les fonctions de tris des tableaux ou tu pourras trouver ton bonheur pour trier par ordre décroissant.
    https://www.php.net/manual/fr/array.sorting.php
    0
  3. Sami
     
    Oui tu as raison je suis beaucoup trop vague, une petit code pour mieux me faire comprendre:
    <?php
    
    $array1= array('banane'=>'jaune', 'citron'=>'jaune', 'tomate' => 'rouge');
    
    foreach($array1 as $key=>$value /* je voudrais que le critère soit présent à cette endroit là, du genre $value=== 'jaune' */)
    {
        echo $value;
    
    }
    
    ?>
    


    Je ne veux pas lire les lignes où $value est inégale à 'jaune', mais dans le cas contraire je me contenterais bien d'un simple IF dans la boucle.
    0
    1. Yuh12 Messages postés 186 Date d'inscription   Statut Membre Dernière intervention   24
       
      Pour filtrer les éléments de ton tableau tu peux aller voir du côté de la fonction array_filter().
      $arr= array('banane'=>'jaune', 'citron'=>'jaune', 'tomate' => 'rouge');
      var_dump(array_filter($arr, function($v, $k) {
          return $v == 'jaune';
      }, ARRAY_FILTER_USE_BOTH));
      
      0
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Tu peux utiliser un array_filter : https://www.php.net/manual/fr/function.array-filter.php
    <?php
    
    
    $array1= array('banane'=>'jaune', 'citron'=>'jaune', 'tomate' => 'rouge');
    
    function yellow($var)
    {
        // retourne lorsque l'entrée est impaire
        return($var == 'jaune');
    }
    
    $array_filtre = array_filter($array1, "yellow");
    
    foreach($array_filtre as $key=>$value 
    {
        echo "<br>$key : $value";
    
    }
    
    ?>
    
    

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sami
     
    Super, ca fonctionne parfaitement, merci Yuh12 et jordane45.
    0