[英]array return wrong value laravel
我发出一个ajax请求,响应是一个图像数组,问题是我回显了数组的值及其所需的值,但是当foreach结束时,我看到数组的每个值都被改变了数组的最后一项
foreach ($x as $y) {
$auxImg->misc_id = $y->misc_id;
$auxImg->image = $y->image;
$aux[$i] = $auxImg;
echo $aux[$i]->image.' ';
//response of the array in the echo
/* 5/maqueta.png - 5/ponto.png - 5/ciades.jpg - 5/35235.jpg */
$i++;
}
echo var_dump($aux);
//response in the var_dump of the aux array
array(4) {
[0]=>
object(stdClass)#400 (2) {
["misc_id"]=>
int(9)
["image"]=>
string(11) "5/35235.jpg"
}
[1]=>
object(stdClass)#400 (2) {
["misc_id"]=>
int(9)
["image"]=>
string(11) "5/35235.jpg"
}
[2]=>
object(stdClass)#400 (2) {
["misc_id"]=>
int(9)
["image"]=>
string(11) "5/35235.jpg"
}
[3]=>
object(stdClass)#400 (2) {
["misc_id"]=>
int(9)
["image"]=>
string(11) "5/35235.jpg"
}
}
我真的不明白为什么会这样,那是我唯一使用$ aux var的时候,请帮忙
这里的问题是$auxImg
是同一对象,因此在每个步骤中,您都需要修改该对象并将其附加到数组中,但是由于$auxImg
是一个对象,因此不会被复制。
您应该添加
$auxImg = new stdClass();
要么
$auxImg = clone $auxImg;
(取决于循环之前使用的代码)
后:
foreach ($x as $y) {
获得预期的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.