如何使用php中的值获取数组的索引

时间:2014-04-05 15:01:31

标签: php

<?php
    $interests[50] = array('fav_beverages' => "beer");
?>

现在我需要来自值beer的索引(即50或索引可能是什么)。

我尝试了array_search()array_flip()in_array()extract()list()来获得答案。

如果我错过了上述功能或我未列出的任何其他功能,请告诉我。答案将不胜感激。

感谢回复。但令我失望的是,它仍然没有用。顺便说一下,我有大量的数据,如&#34;啤酒&#34;);     $ interests [50] = array(&#39; fav_cuisine&#39; =&gt;&#34; arabic&#34;);     $ interests [50] = array(&#39; fav_food&#39; =&gt;&#34; hummus&#34;); ?&GT; 。我的方法是获得其他数据,例如&#34; arablic&#34;和鹰嘴豆泥&#34;来自用户输入&#34;啤酒&#34;。所以我唯一的联系是通过索引[50]。让我知道我的方法是否错误,我可以通过其他方式访问数据。我的大四告诉我,我不应该使用循环。

2 个答案:

答案 0 :(得分:2)

这适用于你的情况。

$interests[50] = array('fav_beverages' => "beer");

function multi_array_search($needle, $interests){
    foreach($interests as $interest){
        if (array_search($needle, $interest)){
            return array_search($interest, $interests);
            break;
        }
    }
}

echo multi_array_search("beer", $interests);

答案 1 :(得分:1)

如果你的数组包含多个子数组并且你不知道哪个数组包含值beer,那么你可以简单地遍历数组,然后通过子数组来搜索该值,然后返回索引(如果找到):

$needle = 'beer';

foreach ($interests as $index => $arr) {
    foreach ($arr as $value) {
        if ($value == $needle) {
            echo $index;
            break;
        }
    }
}

Demo