在数组内部搜索值并返回键

时间:2012-11-28 06:40:49

标签: php arrays search

我的数组看起来像这样:

$myarr = array(
    1 => array(2, 4, 6, 7, 10, 11),
    2 => array(95, 5, 8, 15, 21)
);

是否可以通过数组搜索例如。对于8,然后返回值所在的键号?

EG。 95位于密钥号内。 2,如果它确实找到95,则应返回2 - 否则FALSE。另一个例子:在密钥no里面找到了111,然后它应该返回1FALSE

是否有这样的PHP功能?

3 个答案:

答案 0 :(得分:2)

我认为你正在寻找array_walk()和/或array_walk_recursive()。

答案 1 :(得分:1)

简单的馅饼......我想你可以自己想出来......

function searchInMyArr($myarray, $search_term){
    $position = false;
    foreach ($myarray as $key => $subarray){
        if (in_array($search_term,$subarray){
            $position = $key;
            break;
        }
    }

    return $position;
}

答案 2 :(得分:0)

不,你的案例过于具体,不太可能被其他人使用,因此不在PHP本身。

这是一个可能的解决方案

function search_array_multilevel($needle, $haystack) 
{
    foreach ($haystack as $index => $subarray) {
        if (in_array($needle, $subarray)) {
            return $index;
        }
    }
    return false;
 }