首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >array_walk_recursive PHP4

array_walk_recursive PHP4
EN

Stack Overflow用户
提问于 2011-03-21 23:59:45
回答 1查看 658关注 0票数 0

如何在类中模拟PHP4中的以下行为。

代码语言:javascript
复制
$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
* )

*/

EN

回答 1

Stack Overflow用户

发布于 2011-03-22 00:11:00

下面是一个简单的实现:

代码语言:javascript
复制
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的文档中看到什么时候会发生这种情况,所以我把它省略了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5380249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档