2012-07-23 169 views
0

我是一名学习PHP的新手。今天,我被卡住的项目,并,它打破了我的品牌:(希望有人能帮助我解决了它从多维数组中获取数据

比如我有,以构建一个数组:。

Array ( 
    [a] => Array ( 
     [__base_val] => A 
     [c] => Array ( 
      [__base_val] => C 
      [e] => E 
      [f] => F 
     ) 
     [d] => D 
    ) 
    [b] => Array ( 
     [__base_val] => B 
     [g] => G 
    ) 
    [h] => H 
) 

现在我需要获得价值如果每如果使用foreach函数,我只能得到一个或两个或任何尺寸的索引,如果我知道以前。

如何我可以写一个PHP代码获取价值遵循指数维度数组和我不需要知道维数?

这是结果,我想:

class1: value from [__base_val] 
class2: value from [__base_val] 
child class 2 : value 
+0

我不确定你真正想要什么,但你可以尝试'array_walk_recursive()'。 – uzyn 2012-07-23 10:14:55

+0

是的,我的英语水平很低....我需要显示子节点和父母的目录树列表。我将它转换为多维数组,但不知道如何显示它。因为实际上,我不知道有多少维数组。 – Rueta 2012-07-23 10:19:17

回答

1

我不知道如果这是你在找什么,但我希望它是。

<?php 
function print_deep($value, $key) { 
    echo "$value: value from $key\n"; 
} 

// Note: $array being the input array 
array_walk_recursive($array, 'print_deep'); 
+0

我认为你是对的!但我如何检测它的级别。例如:将结果嵌入到“UL LI”html表单中? – Rueta 2012-07-23 10:56:54

+1

对于这种情况下,你可能想参考这个:http://stackoverflow.com/questions/7889788/php-recurse-multidimensional-array-while-keeping-hold-of-depth-and-key – uzyn 2012-07-23 11:04:20

+0

谢谢uzyn!我认为这是硬编码:)。其他方式可以解决我的问题,合并您的解决方案:http://stackoverflow.com/questions/6137315/php-multidimensional-array-to-unordered-list-building-up-url-path – Rueta 2012-07-23 11:08:42