如何在类中模拟PHP4中的以下行为。
$sample = array('dog' => 'woof', 'cat' => array('angry' => 'hiss', 'happy' => 'purr'), 'aardvark' => 'kssksskss');
$output = array();
// Push all $val onto $output.
array_walk_recursive($sample, create_function('$val, $key, $obj', 'array_push($obj, $val);'), &output);
print_r($output);
/*
* Array
* (
* [0] => woof
* [1] => hiss
* [2] => purr
* [3] => kssksskss
* )*/
发布于 2011-03-22 00:11:00
下面是一个简单的实现:
function array_walk_recursive(&$input, $callback, $userdata = null) {
foreach($input as $key => &$value) {
if (is_array($value)) {
if(!array_walk_recursive($value, $callback, $userdata)) {
return false;
}
}
else {
call_user_func($callback, $value, $key, $userdata);
}
}
return true;
}有一件事是不会做的,就是返回false。我没有在array_walk的文档中看到什么时候会发生这种情况,所以我把它省略了。
https://stackoverflow.com/questions/5380249
复制相似问题