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

Résolu/Fermé
Sami - 12 juin 2017 à 10:32
 Sami - 12 juin 2017 à 12:02
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
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...
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
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
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
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
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
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
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
12 juin 2017 à 11:37
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

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

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