Php 在数组中搜索值并返回键

Php 在数组中搜索值并返回键,php,arrays,search,Php,Arrays,Search,我的数组如下所示: $myarr = array( 1 => array(2, 4, 6, 7, 10, 11), 2 => array(95, 5, 8, 15, 21) ); 是否可以在数组中搜索例如8,然后返回值所在的键号 例如,95位于键号2内,如果它确实找到了95,则应返回2,否则返回FALSE。另一个示例:在键号1内找到11,则它应返回1,否则返回FALSE 有这样的PHP函数吗 简单派。。。我想你可以自己想出来 function searchInMyA

我的数组如下所示:

$myarr = array(
    1 => array(2, 4, 6, 7, 10, 11),
    2 => array(95, 5, 8, 15, 21)
);
是否可以在数组中搜索例如
8
,然后返回值所在的键号

例如,
95
位于键号
2
内,如果它确实找到了
95
,则应返回
2
,否则返回
FALSE
。另一个示例:在键号
1
内找到
11
,则它应返回
1
,否则返回
FALSE


有这样的PHP函数吗

简单派。。。我想你可以自己想出来

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

    return $position;
}

简单派。。。我想你可以自己想出来

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

    return $position;
}

我想你是在寻找array\u walk()和/或array\u walk\u recursive()。

我想你是在寻找array\u walk()和/或array\u walk\u recursive()。

不,你的案例太具体,不太可能被其他人使用,因此它不在PHP中

这里有一个可能的解决方案

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

不,您的案例太具体,不太可能被其他人使用,因此它不在PHP中

这里有一个可能的解决方案

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

你试过构建自己的函数吗?不,读-我要的是PHP的内置函数。你试过构建自己的函数吗?不,读-我要的是PHP的内置函数。@AntonioLaguna如果值在多个键中,你的函数将只返回找到的第一个。@Scott为什么慢?或者,您认为多级数组中的搜索速度有多快?如果这对你来说太慢了,那么你就需要考虑时间与记忆的交易,并预先对价值进行预索引。但那将是一个完全不同的问题去解决。@Scott我认为这一点也不慢。PHP中的内置方法非常相似,但它们当然是用C编写的。。。这不是一个要求,也不是常见的模式。但是,可以很容易地将函数更改为achive。@AntonioLaguna如果该值在多个键中,则您的函数将只返回找到的第一个键。@Scott为什么慢?或者,您认为多级数组中的搜索速度有多快?如果这对你来说太慢了,那么你就需要考虑时间与记忆的交易,并预先对价值进行预索引。但那将是一个完全不同的问题去解决。@Scott我认为这一点也不慢。PHP中的内置方法非常相似,但它们当然是用C编写的。。。这不是一个要求,也不是常见的模式。但是,可以很容易地更改该功能。