我的数组看起来像这样:
$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里面找到了11
。 1
,然后它应该返回1
和FALSE
。
是否有这样的PHP功能?
答案 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;
}