如何将其他字段推送到Php中的数组?

时间:2013-03-16 12:50:59

标签: php arrays loops foreach

你好我正在寻找最佳实践,用php将一个额外的字段推入一个数组。 我已经尝试过array_push及其等效的$ array [] = $ var;但它不是我想得到的。

我有一个像这样的循环:

    foreach($lakesNearby as $lakes){
        $dist = $this->getDistance($lat, $lng, $lakes['latitude'], $lakes['longitude'], $unit);
        $lakes['distance'] = $dist;
        $lakesReturned[] = $lakes;
    }

但我确信有更好的方法可以将最后两行合并到$ lakesNearby?

2 个答案:

答案 0 :(得分:2)

嗯......,也许是这样:

foreach($lakesNearby as &$lakes){
    $lakes['distance'] = $this->getDistance($lat, $lng, $lakes['latitude'], $lakes['longitude'], $unit);
}

所有数据都在$ lakesNearby数组中,你不需要另一个数组。

答案 1 :(得分:0)

正如亚历克斯在评论中所说:

为了完整性,请参阅php.net/manual/de/control-structures.foreach.php:“为了能够直接修改循环中的数组元素,在$ value之前加上&amp ;.在这种情况下,值将通过引用分配。

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>