如果是知道键值,需要查找键名,直接使用array_search()即可.现在反过来,如何操作?
$arr=array( ‘name‘=>‘zhangsan‘, ‘age‘ =>‘63‘, ‘money‘=>array( ‘name‘=>‘lisi‘ )); function my_walk($value,$key){//固定格式,$value表示当前键值,$key表示当前键名 static $name; if($key==‘name‘){ $name[]=$value;//压入数组 $GLOBALS[‘name‘]=$name; }}array_walk_recursive($arr,‘my_walk‘);var_dump($GLOBALS[‘name‘]) ;/* 结果: array(2) { [0]=> string(8) "zhangsan" [1]=> string(4) "lisi"} */ $arr=array( ‘name‘=>‘zhangsan‘, ‘age‘ =>‘63‘, ‘money‘=>array( ‘name‘=>‘lisi‘ ));function getArray($array, $index) { if (!is_array($array)) return null; if (isset($array[$index])) return $array[$index];//递归出口 foreach ($array as $item) { $return = getArray($item, $index); if (!is_null($return)) { return $return; } } return null;} echo getArray($arr,‘name‘);//打印出结果:zhangsan$arr=array( ‘name‘=>‘zhangsan‘, ‘age‘ =>‘63‘, ‘money‘=>array( ‘name‘=>‘lisi‘ ));function getArray($array, $index) { static $return; if (!is_array($array)) return null; if (isset($array[$index])) $return[]=$array[$index];//接收 foreach ($array as $item) { getArray($item, $index); } return $return;} var_dump(getArray($arr,‘name‘)) ;/* 结果: array(2) { [0]=> string(8) "zhangsan" [1]=> string(4) "lisi"} */原文:http://www.cnblogs.com/kinger/p/4357003.html