0

您好,我正在寻找使用 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 ?

4

2 回答 2

2

嗯...,也许是:

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

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

于 2013-03-16T13:05:13.873 回答
0

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

只是为了完整起见,请参阅 php.net/manual/de/control-structures.foreach.php :“为了能够直接修改循环中的数组元素,在 $value 之前加上 &。在这种情况下,值将由参考。

<?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
?>
于 2013-04-10T16:34:17.437 回答