PHP array_walk_recursive:两种方法,不同的结果


PHP array_walk_recursive: two approaches, different result

给出如下设置:

    $storer = array();
    $arr = array(1, 2, 3);

我很好奇为什么不给$storer写信…

array_walk_recursive($arr, function($val, $key) {
    global $storer;
    $storer[] = 'foo';
});
print_r($storer); //no change - empty

. .但这可以:

array_walk_recursive($arr, function($val, $key) use (&$storer) {
    $storer[] = 'foo';
});
print_r($storer); //three items, all 'foo'

有谁能开导我一下吗?在用户函数中,我希望global提供读/写访问。

拉我的头发试图得到一个扁平数组与键这工作:

$result = array();
array_walk_recursive($inputarray,function($v, $k) use (&$result){ $result[$k] = $v;  });
$inputarray = $result;

我希望有人发现这篇文章,它会有所帮助。