/ Vyhľadávanie v PHP vnorených poliach - php

Vyhľadávanie v PHP vnorených poliach - php

Som "vykopal" a učil čo najviac o PHP Arrays, ale narazil som na úskok, ktorý nemôžem prísť na to.

V príklade kódu, mám pole, ktoré vyzerá takto:

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

Teraz inde v kóde mám premennú nazvanú $ myfavouriteitem

$myfavouriteitem = "apple";

S hodnotou $myfavouriteitem premenná, chcem vrátiť hodnotu "fruit".

Snažil som sa používať array_search() funguje v PHP, ale nemám šťastie array_search() až do miesta, kde som predstavil vnorené pole.

Ak sa blíži k tomu z nesprávneho uhla,prosím daj mi vedieť. Moja počiatočná myšlienka bola na to, aby som použila databázu na ukladanie týchto informácií (hlavne preto, že som nová pre pole), ale to je mimo otázky pre tento konkrétny projekt. S ohľadom na to, moje súbory údajov budú mať vzťah jedného k viacerým (jeden kľúč s viacerými hodnotami).

odpovede:

1 pre odpoveď č. 1
foreach ($array as $key => $val) {
if (in_array($myfavouriteitem, $val)) {
echo $key;
break;
}
}

1 pre odpoveď č. 2
echo key(array_filter($array, function ($values) use ($myfavouriteitem) { return in_array($myfavouriteitem, $values); }));

Potrebuje PHP 5.3 a môže byť pomalší ako @zerkms riešenie. Ale hej, to je funkčný jeden-liner !,)