在PHP嵌套数组中搜索

时间:2011-07-06 01:29:16

标签: php

我一直在深入挖掘并尽可能多地学习PHP数组,但是遇到了一个我无法弄清楚的绊脚石。

在我的示例代码中,我有一个如下所示的数组:

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

现在,在代码的其他地方,我有一个名为$ myfavouriteitem

的变量
$myfavouriteitem = "apple";

使用$myfavouriteitem变量的值,我想返回值"fruit"

我尝试在PHP中使用array_search()函数,但我没有运气。我能够使用array_search()直到我引入嵌套数组。

如果我从错误的角度接近这个,请告诉我。我最初的想法是使用数据库来存储这些信息(特别是因为我是数组的新手);但是,对于这个特定的项目来说,这是不可能的。考虑到这一点,我的数据集将具有一对多关系(一个具有多个值的键)。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

虽然需要PHP 5.3,但可能比@zerkms解决方案慢。但是,嘿,这是一个功能性的单行程! ;)