Un critère de sélection dans foreach !!
Résolu
Sami
-
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.
$value == 10 et par ordre d'id décroissant.
Merci à celui qui aura la réponse.
5 réponses
-
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 queje voudrais ajouter un critère de sélection
... tu veux dire un IF tout simplement non ??
-
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 -
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. -
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"; } ?>
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -