【发布时间】:2010-07-14 23:42:00
【问题描述】:
我需要一种在 PHP 中遍历多维数组而不使用函数调用本身的方法。
基本上我有一个这样的数组:
$data = array(
'hoge' => 123,
'foo' => 456,
'bar' => 789,
'aaa' => array(
'abc' => 111,
'bcd' => 222,
'cde' => 333
),
'bbb' => array(
'def' => array(
'efg' => 'hoge'
)
),
'stacks' => array(
'a',
'b'=> array('qwe' => 111,
'asd' => 222,
'args' => array('1',
'2',
'3')),
'c'
)
);
一般你使用这样的函数:
function get_array_elems($arrResult, $where="array"){
while(list($key,$value)=each($arrResult)){
if (is_array($value)){
get_array_elems($value, $where."[$key]");
}
} else {
...anything
}
}
get_array_elems($arrResult);
我不能使用这个方法,因为我必须在 PHP 函数中编写这个方法,它不能在另一个函数中编写函数。
可以用while、foreach、array_walk_recursive等迭代方法来完成吗?
【问题讨论】:
-
请问为什么不能在函数内部使用函数调用?如果您想采用迭代方法,我不会将 recursive 放入问题的标题中。
标签: php algorithm arrays traversal