Un critère de sélection dans foreach !!
Résolu/Fermé
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.
A voir également:
- Un critère de sélection dans foreach !!
- L'indice n'appartient pas à la sélection vba - Forum VB / VBA
- Variable workbook : l'indice n'appartient pas à la sélection ✓ - Forum Excel
- Excel rechercher et remplacer dans une selection ✓ - Forum Excel
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Excel
- Selection texte pdf - Guide
5 réponses
jordane45
Messages postés
38449
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 mars 2025
4 739
12 juin 2017 à 10:37
12 juin 2017 à 10:37
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...
Récupérer dans quoi ? comment ? pour en faire quoi ???
Sachant que
... tu veux dire un IF tout simplement non ??
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 ??
Yuh12
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
12 juin 2017 à 10:43
12 juin 2017 à 10:43
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.
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
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:
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.
<?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.
Yuh12
Messages postés
184
Date d'inscription
mercredi 7 mai 2014
Statut
Membre
Dernière intervention
28 septembre 2017
24
12 juin 2017 à 11:31
12 juin 2017 à 11:31
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));
jordane45
Messages postés
38449
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 mars 2025
4 739
12 juin 2017 à 11:37
12 juin 2017 à 11:37
Bonjour,
Tu peux utiliser un array_filter : https://www.php.net/manual/fr/function.array-filter.php
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