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'];