php多次元配列を巡る配列の値の変更

798 ワード

今日のプロジェクトの1つの問題は、検出された結果を条件に基づいて再フィルタリングする必要があることです.検出されたのは2次元配列なので、直接配列を巡ります.私が使っている2 D配列は$listで、まずこのように遍歴します.
foreach($list as $k=>$v){
            if(strpos($v['distance'],'7.') === 0 &&strrchr($v['distance'],'km')== 'km' ){
                $v['distance'] = '7.0km';
            }
        }
しかし、$listは変更されていません.なぜなら、$Vは$listの要素ではありません.$Listの$['$k']キー値と等しい1次元配列にすぎません.原因が分かれば便利です.正しいコードは以下の通りです.
foreach($list as $k=>$v){
            if(strpos($v['distance'],'7.') === 0 &&strrchr($v['distance'],'km')== 'km' ){
                $list[$k]['distance'] = '7.0km';
            }
        }

これで本当に$Listが変わります.