php数组array,知道键名如何提取键值
如果是知道键值,需要查找键名,直接使用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"
}
*/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。