Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组\u walk\u递归PHP4_Php_Arrays_Recursion - Fatal编程技术网

数组\u walk\u递归PHP4

数组\u walk\u递归PHP4,php,arrays,recursion,Php,Arrays,Recursion,如何在类中模拟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

如何在类中模拟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
* )

*/这里有一个简单的实现:

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的文档中没有看到可能发生这种情况的时间,所以我忽略了它。

没有理由再使用PHP4。