Signaler

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

Posez votre question Sami - Dernière réponse le 12 juin 2017 à 12:02 par 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.



Afficher la suite 
Utile
+0
plus moins
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 ??
Donnez votre avis
Utile
+0
plus moins
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
Donnez votre avis
Utile
+0
plus moins
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 181Messages postés mercredi 7 mai 2014Date d'inscription 22 juin 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));
Répondre
Donnez votre avis
Utile
+0
plus moins
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";

}

?>


Donnez votre avis
Utile
+0
plus moins
Super, ca fonctionne parfaitement, merci Yuh12 et jordane45.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !