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

假设数组为$arr=array('a'=>1,array('b'=>2),'c'=>3,array(array('d'=>4),'e'=>5))如果给定值是4,怎么得出在... 假设数组为$arr = array('a' => 1, array('b' => 2), 'c' => 3, array(array('d' =>4), 'e' => 5))
如果给定值是4,怎么得出在$arr中对应的键名
展开
 我来答
辞友缘心
推荐于2017-11-27 · TA获得超过684个赞
知道小有建树答主
回答量:432
采纳率:0%
帮助的人:358万
展开全部
<?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.

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

网采纳。

匿名用户
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式