如何在PHP中的闭包之外填充数组?

时间:2017-04-06 20:02:49

标签: php hashmap closures

我写了这个

 $result = array();

        array_map(function($row) use ($result) {
            $result[$row->id] = array();
            $result[$row->id]['geojson'] = $row->geojson;
        }, $regions);

并且$result在结尾处为空。

是否有可能以这种方式填充数组?

1 个答案:

答案 0 :(得分:5)

函数内部的{p> $result是外部数组的副本,因此您所做的更改不会影响原始数组。您需要使用引用:use (&$result)

array_map(function($row) use (&$result) {
    $result[$row->id] = array();
    $result[$row->id]['geojson'] = $row->geojson;
}, $regions);

或者你可以简单地使用foreach

foreach ($regions as $row) {
    $result[$row->id] = array();
    $result[$row->id]['geojson'] = $row->geojson;
}