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;
    }

しかし、最後の2行を組み合わせて、それを$ 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 に答える