php如何在多维数组中搜索给定的值,如果成功则返回相应的键名

假设数组为$arr = array('a' => 1, array('b' => 2), 'c' => 3, array(array('d' =>4), 'e' => 5))
如果给定值是4,怎么得出在$arr中对应的键名

<?php

$arr = array('a' => 1, array('b' =>2), 'c' => 3, array(array('d' =>4), 'e' => 5));

echo searchKey($arr,4);

function searchKey($array,$value){
foreach($array as $key=>$row){
if(!is_array($row)){
if($row == $value){
$r = $key;
return $key;
}
}else{
$r = searchKey($row,$value);
if($r != -1){
return $r;
}
}
}
return -1;
}

?>

热心网友回答你的那个会有问题的,你可以把1 2 3 4 5都试验一下,而且他那个只支持搜索4.

我这已经优化过了,没有问题。

网采纳。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-26
$arr = array(
'a' => 1,
array('b' => 2),
'c' => 3,
array(array('d' =>4), 'e' => 5));
function arr_key($arr){
foreach($arr as $k=>$v){
if(is_array($v)){
arr_key($v);
}elseif($v==4){
echo $k;
}
}
}
arr_key($arr);

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网