这是我的数组:
array(1) {
["farm"]=>
array(2) {
["folder1"]=>
array(2) {
["horse"]=>
array(1) {
["fred"]=>
string(4) "fred"
}
["cat"]=>
array(1) {
["john"]=>
string(4) "john"
}
}
["folder2"]=>
array(1) {
["cat"]=>
array(2) {
["sam"]=>
string(3) "sam"
["cat"]=>
array(1) {
["john"]=>
string(4) "john"
}
}
}
}
}
这是我的功能:
$search = "folder1";
get_values($arr);
function get_values($arr, $id){
global $search;
foreach($arr as $key => $value){
if($key == $search){
if(is_array($value)){
foreach( $value as $k => $v ) {
echo $k;
}
}
}else{
get_values($value, $id );
}
}
}
我的结果:
horse
cat
我不仅需要数组键。我还想打印所有的父母(父母,祖父母,直到根)键。我需要的结果是:
farm/folder1/horse
farm/folder1/cat
据我所知是这样。但是在这里,我只得到父母,没有外祖父母和外祖父母:
foreach( $value as $k => $v ) {
echo $key."/".$k;
}
结果是
folder1/horse
folder1/cat
向您的函数添加路径参数。
$search = "folder1";
get_values($arr, null);
function get_values($arr, $path, $id){
global $search;
foreach($arr as $key => $value){
$basePath = $path === null ? $key : $path. "/" . $key;
if($key == $search){
if(is_array($value)){
foreach( $value as $k => $v ) {
echo $basePath . '/' . $k;
}
}
}else{
get_values($value, $basePath, $id);
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句