Recherche dans un array

cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 25 déc. 2008 à 01:15
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 25 déc. 2008 à 13:08
Salut à tous et joyeux nöel,

J'aimerais savoir s'il est possible de chercher la clé d'un tableau grâce à deux valeurs.

Voici mon tableau :

Array
(
[0] => Array
(
[JID] => 2
[CID] => 6
[INI] => 17
)

[1] => Array
(
[JID] => 1
[CID] => 4
[INI] => 16
)

[2] => Array
(
[JID] => 1
[CID] => 3
[INI] => 15
)

[3] => Array
(
[JID] => 1
[CID] => 7
[INI] => 13
)

[4] => Array
(
[JID] => 2
[CID] => 7
[INI] => 9
)

[5] => Array
(
[JID] => 1
[CID] => 0
[INI] => 9
)

)

Je souhaite par exemple obtenir "5" en recherchant JID="1" et CID="0". Dois-je utiliser deux array_search() ?

Merci d'avance :)

2 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 déc. 2008 à 11:01
salut

array_search ne fonctionnera pas, mais tu peux utiliser array_filter :

tu peux filtrer tes tableaux selon la condition suivante :
 "etre un tableau qui contient 'JID' => 1"
et
 "etre un tableau qui contient 'CID' => 0"
0
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
25 déc. 2008 à 13:08
Yop, je m'en sort pas trop avec array_filter.

Donc j'ai essayé de créer une fonction :

        function TourFilter($Tour, $JID, $CID){
            foreach($Tour as $item){
                if(in_array($JID, $item) && in_array($CID, $item))
                    return $item;
            }   
        }

    print_r($Tour[TourFilter($Tour, 1, 0)]);

Mais j'obtiens l'avertissement qui suit :
Warning: Illegal offset type in /homez.18/dshiponl/www/Sys combat/test.php5 on line 238

Une petite idée ?
0
Rejoignez-nous