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编写的。。。这不是一个要求,也不是常见的模式。但是,可以很容易地更改该功能。