Menu

Un critère de sélection dans foreach !! [Résolu]

Sami - 12 juin 2017 à 10:32 - Dernière réponse :  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.



Afficher la suite 

Votre réponse

6 réponses

jordane45 21112 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 mai 2018 Dernière intervention - 12 juin 2017 à 10:37
0
Utile
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 ??
Commenter la réponse de jordane45
Yuh12 186 Messages postés mercredi 7 mai 2014Date d'inscription 28 septembre 2017 Dernière intervention - 12 juin 2017 à 10:43
0
Utile
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.
http://php.net/manual/fr/array.sorting.php
Commenter la réponse de Yuh12
0
Utile
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.
Yuh12 186 Messages postés mercredi 7 mai 2014Date d'inscription 28 septembre 2017 Dernière intervention - 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));
Commenter la réponse de Sami
jordane45 21112 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 mai 2018 Dernière intervention - 12 juin 2017 à 11:37
0
Utile
Bonjour,

Tu peux utiliser un array_filter : http://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";

}

?>


Commenter la réponse de jordane45
0
Utile
Super, ca fonctionne parfaitement, merci Yuh12 et jordane45.
Commenter la réponse de Sami