Php 如何在循环中重新分配数组值?

Php 如何在循环中重新分配数组值?,php,arrays,Php,Arrays,我有一段代码:- $returnArr = $this->master_model->fetch_all_data($data, $selectString,$limit, $offset); foreach($returnArr as $row) { if (array_key_exists($data.'_image', $row)) { $img = base_url()."uploads/$data/". $r

我有一段代码:-

$returnArr = $this->master_model->fetch_all_data($data, $selectString,$limit, $offset);
foreach($returnArr as $row)
    {
        if (array_key_exists($data.'_image', $row)) 
        {
            $img = base_url()."uploads/$data/". $row[$data.'_image'];
            $row[$data.'_image'] = $img;
        }
    }
print_r($returnArr);
$return的格式如下:

Array ( [0] => 
         Array ( [sticker_image] => post_1462515402.jpg 
                 [sticker_code] => :* ) 
        [1] => Array ( [sticker_image] => post_1462515510.jpg 
                 [sticker_code] => ^=^ ) 
        [2] => Array ( [sticker_image] => post_1462515532.jpg 
                 [sticker_code] => >_<* ) 
        [3] => Array ( [sticker_image] => post_1462515539.jpg 
                 [sticker_code] => :(( ) ) 
然而,这些变化并没有发生。它仍在继续

[sticker_image] => post_1462515402.jpg

我做错了什么?

$row[$data.“\u image']=$img将仅更改数组元素的本地副本

要更改实际数组元素,必须使用引用循环:

$returnArr = ['a' => 'b'];

foreach ($returnArr as &$row) {
    $row = 'cc';
}

var_dump($returnArr); // ['a' => 'cc'];

可能它没有进入
数组\u键\u存在($data.''u image',$row)
。如果不知道另一个变量的值,问题就不清楚了。@Daan-Er。。。什么P
$returnArr = ['a' => 'b'];

foreach ($returnArr as &$row) {
    $row = 'cc';
}

var_dump($returnArr); // ['a' => 'cc'];