我一直在深入挖掘并尽可能多地学习PHP数组,但是遇到了一个我无法弄清楚的绊脚石。
在我的示例代码中,我有一个如下所示的数组:
$array = array("fruit" => array("apple", "orange", "pear"), "veg" => array("carrot","celery"));
现在,在代码的其他地方,我有一个名为$ myfavouriteitem
的变量$myfavouriteitem = "apple";
使用$myfavouriteitem
变量的值,我想返回值"fruit"
。
我尝试在PHP中使用array_search()
函数,但我没有运气。我能够使用array_search()
直到我引入嵌套数组。
如果我从错误的角度接近这个,请告诉我。我最初的想法是使用数据库来存储这些信息(特别是因为我是数组的新手);但是,对于这个特定的项目来说,这是不可能的。考虑到这一点,我的数据集将具有一对多关系(一个具有多个值的键)。
答案 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解决方案慢。但是,嘿,这是一个功能性的单行程! ;)