php数组array,知道键名如何提取键值
2015-03-22 12:25
337 查看
如果是知道键值,需要查找键名,直接使用array_search()即可.现在反过来,如何操作?
(1)array_walk_recursive()加自定义函数查找
(2)遍历数组进行递归查找
上面的getArray()函数只是找到一个键名为'name'的值就返回了,但是如果需要提出相同的多个键名的值,可以这样
(1)array_walk_recursive()加自定义函数查找
$arr=array(
'name'=>'zhangsan',
'age'=>'63',
'money'=>array(
'name'=>'lisi'
)
);
functionmy_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"
}
*/
(2)遍历数组进行递归查找
$arr=array(
'name'=>'zhangsan',
'age'=>'63',
'money'=>array(
'name'=>'lisi'
)
);
functiongetArray($array,$index){
if(!is_array($array))returnnull;
if(isset($array[$index]))return$array[$index];//递归出口
foreach($arrayas$item){
$return=getArray($item,$index);
if(!is_null($return)){
return$return;
}
}
returnnull;
}
echogetArray($arr,'name');//打印出结果:zhangsan
上面的getArray()函数只是找到一个键名为'name'的值就返回了,但是如果需要提出相同的多个键名的值,可以这样
$arr=array(
'name'=>'zhangsan',
'age'=>'63',
'money'=>array(
'name'=>'lisi'
)
);
functiongetArray($array,$index){
static$return;
if(!is_array($array))returnnull;
if(isset($array[$index]))$return[]=$array[$index];//接收
foreach($arrayas$item){
getArray($item,$index);
}
return$return;
}
var_dump(getArray($arr,'name'));
/*
结果:
array(2){
[0]=>
string(8)"zhangsan"
[1]=>
string(4)"lisi"
}
*/
相关文章推荐
- array_keys && array_values::PHP数组键名于键值分离
- php数组函数序列之array_flip() 将数组键名与值对调
- php-Arrays 函数-array_diff_ukey-用回调函数对键名比较计算数组的差集
- php 数组Array 删除指定键名值
- php在多维数组中根据键名快速查询其父键以及父键值的代码
- PHP学习之数组Array操作和键值对操作函数(一)
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- php数组函数序列之array_search()- 按元素值返回键名
- PHP中如何在数组中随机抽取n个数据的值 - array_rand()?
- php-Arrays 函数-array_intersect_key-使用键名比较计算数组的交集
- php获分别取数组键名和键值
- php-Arrays 函数-array_key_exists-检查给定的键名或索引是否存在于数组中
- PHP获取数组的键名与键值
- php数组函数序列之array_key_exists() - 查找数组键名是否存在
- php-Arrays 函数-array_search-在数组中查找给定的值并返回相应的键名
- php中如何搜索相关联数组键值及获取之
- PHP数组array键值双引号单引号区别
- PHP之array_keys()获取数组键名
- PHP 检查给定的键名或索引是否存在于数组中 array_key_exists 函数
- php数组函数序列之array_flip() 将数组键名与值对调