将项目添加到数组时,它将覆盖第一个值

时间:2018-12-27 12:46:39

标签: php arrays

由于某种原因,当我尝试将一个项目添加到我的数组时,它会覆盖第一个项目。我不知道为什么要这么做。第一个元素的ID应该为1,第二个元素的ID应该为2,但是我却得到2和2。

books

结果:

$array = new stdClass;
$arrays = [];
$ids = [1,2];

foreach ($ids as $id) {
    $array->id = $id;
    $arrays[] = $array;

    print_r($arrays);
}

1 个答案:

答案 0 :(得分:4)

您要更新同一对象,需要在数组中放入2个不同的对象,并将类声明放入循环中。

foreach ($ids as $id) {
    $array = new stdClass; // object initialization
    $array->id = $id;
    $arrays[] = $array;

    print_r($arrays);
}