获取PHP多维数组中指定键(key或下标)的值,并以数组格式返回
用标准PHP类库SPL里的ArrayIterator类,ArrayIterator类和ArrayObject类,只支持遍历一维数组。与之对应的RecursiveArrayIterator支持遍历多维数组,首先用 RecursiveIteratorIterator生成一个Iterator,然后再对这个Iterator使用 RecursiveArrayIterator。
- 以下是参考代码
function searchMultiArray(array $array, $search, $mode = 'key') {
$res = array();
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $key => $value) {
if ($search === ${${"mode"}}){
if($mode == 'key'){
$res[] = $value;
}else{
$res[] = $key;
}
}
}
return $res;
}
var_dump(searchMultiArray($arr, 's'));