2 votes

Recherche dans les tableaux imbriqués de PHP

Je me suis creusé la tête et j'ai appris tout ce que je pouvais sur les tableaux PHP, mais j'ai rencontré une pierre d'achoppement que je n'arrive pas à résoudre.

Dans mon exemple de code, j'ai un tableau qui ressemble à ceci :

$array = array("fruit" => array("apple", "orange", "pear"), "veg" => array("carrot","celery"));

Maintenant, ailleurs dans le code, j'ai une variable appelée $myfavouriteitem

$myfavouriteitem = "apple";

Avec la valeur de la $myfavouriteitem j'aimerais renvoyer la valeur "fruit" .

J'ai essayé d'utiliser array_search() en PHP, mais je n'ai pas de chance. J'ai pu utiliser array_search() jusqu'au moment où j'ai introduit le tableau imbriqué.

Si je n'aborde pas la question sous le bon angle, faites-le moi savoir. Ma première idée était d'utiliser une base de données pour stocker ces informations (d'autant plus que je suis novice en matière de tableaux), mais c'est hors de question pour ce projet particulier. Dans cette optique, mes ensembles de données auront tous une relation de type "one-to-many" (une clé avec plusieurs valeurs).

1voto

zerkms Points 105994
foreach ($array as $key => $val) {
    if (in_array($myfavouriteitem, $val)) {
        echo $key;
        break;
    }
}

1voto

deceze Points 200115
echo key(array_filter($array, function ($values) use ($myfavouriteitem) { return in_array($myfavouriteitem, $values); }));

Nécessite PHP 5.3 et peut être plus lent que la solution de @zerkms. Mais bon, c'est une solution fonctionnelle ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X