2011-07-06 119 views
2

我一直在挖掘和学习PHP阵列的知识,但遇到了我无法弄清楚的绊脚石。在PHP嵌套阵列中搜索

在我的示例代码中,我有一个数组,看起来像这样:

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

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

$myfavouriteitem = "apple"; 

随着价值$myfavouriteitem变量,我想返回值"fruit"

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

如果我从错误的角度接近这个,请让我知道。我最初的想法是使用一个数据库来存储这些信息(尤其是因为我对数组不熟悉)。然而,这对于这个特定的项目来说是不可能的。考虑到这一点,我的数据集都将具有一对多关系(一个关键字具有多个值)。

回答

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

很好。谢谢,Zerkms。我能够得到这个为我工作。我将花更多时间回顾PHP数组。 – Andrew

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

需要PHP 5.3虽然,并且可以比@zerkms溶液慢。但是,嘿,这是一个功能单线! ;)