Rechercher dans un array avec une condition = array_filter ?

  • Auteur de la discussion Auteur de la discussion ZelkiN
  • Date de début Date de début
WRInaute occasionnel
Bonjour !
J'ai actuellement un array qui contient plusieurs 'sous array' :D (je crois que ca se dit pas ^^)

Code:
Array(
        Array
        (
            [a] => 1
            [c] => 3
            [e] => 5
        )
        Array
        (
            [b] => 4
            [d] => 6
            [f] => 1
        )
)

Enfaite je voudrais faire une selection du array qui contient [a]=>1, le probleme c'est qu'en utilisant array_filter ca me retourne uniquement la valeur 1, donc dans ce cas la, je me retrouve avec les 2 tableaux parceque a=1 mais f=1 dans le deuxieme tableau aussi...

Comment faire donc une condition de selection dans un sous array ?

Merci !!
 
WRInaute accro
Array(
toto => Array
(
[a] => 1
[c] => 3
[e] => 5
) ,
titi => Array
(
=> 4
[d] => 6
[f] => 1
)

ça sera déjà mieux

ce qui permet de faire ['toto']['a'] pour avoir 1

Si tu ne donnes pas de nom à tes arrays, à ce moment là c'est un pointeur numérique qui se créée automatiquement et tu fais [0]['a'] pour avoir 1
 
WRInaute occasionnel
oui mais enfaite avec mon filter je fais une comparaison et je dis que si [a]=>1 (1 étant une var php) alors j'affiche ce tableau la... J'arrive a récup toutes les valeurs en dur, mais ce que je n'arrive pas c'est selectionner tel tableau en fonction de la valeur du champs commun id
 
WRInaute impliqué
PHP:
<span class="syntaxdefault"><br />$tabs </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Array</span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">    </span><span class="syntaxstring">"toto"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array</span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">        </span><span class="syntaxstring">"a"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"c"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 3</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"e"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 5<br />    </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">,<br /></span><span class="syntaxdefault">    </span><span class="syntaxstring">"titi"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> Array</span><span class="syntaxkeyword">(<br /></span><span class="syntaxdefault">        </span><span class="syntaxstring">"b"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 4</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"d"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 6</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"f"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> 1<br />    </span><span class="syntaxkeyword">)<br />);<br /></span><span class="syntaxdefault">$tableau </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> null</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$tabs AS $tab</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$tab AS $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"a"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">&&</span><span class="syntaxdefault"> $value </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $tableau </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $tab</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            break</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxcomment">//&nbsp;si&nbsp;$tableau&nbsp;n'est&nbsp;pas&nbsp;vide,&nbsp;tu&nbsp;as&nbsp;trouvé&nbsp;ton&nbsp;tableau&nbsp;à&nbsp;afficher.<br />&nbsp;</span><span class="syntaxdefault"></span>

Si j'ai bien compris …
 
WRInaute accro
J'ai de plus en plus de mal à comprendre ce que tu veux faire ? mais regarde du côté de la fonction in_array
 
WRInaute occasionnel
Ah blount est sur la bonne piste, le foreach !! grrrr lol !!

Merci Marie-Aude pour ton aide quand meme ;) je vais utilisé la boucle foreach ;)
 
Discussions similaires
Haut