如何为对象数组中的每个新数组设置id?

时间:2017-07-06 18:26:21

标签: php arrays foreach

我有像这样的对象数组

[
    {
        "name": "qwe",
        "password": "qwe"
    },
    {
        "name": "qwe1",
        "password": "qwe1"
    }
]

我需要添加id每对" name"和"密码",它必须像这样

[
    {
        "name": "qwe",
        "password": "qwe"
        "id":"0"
    },
    {
        "name": "qwe1",
        "password": "qwe1"
        "id":"1"
    }
]

我尝试使用foreach

移动数组
$users[] = array('name' => $name, 'password' => $password);
    $i = 0;
    foreach ($users as $key => $value, "id" => 0) {
        $value['id'] = $i;
        $i++;
}

我是php的初学者,请帮助。我做错了什么?

1 个答案:

答案 0 :(得分:1)

使用:foreach($array as $key => $value)迭代数组时,$value将是原始对象的副本。更改副本对原始数组没有影响。

您需要确保更新原始值。有两种方法可以做到这一点。

直接访问原始数组:

foreach ($users as $key => $value) {
    // Access the original array directly
    $users[$key]['id'] = $i;
    $i++;
}

使用参考& - 符号):

foreach ($users as $key => &$value) {
    // The & will make it a reference to the original value instead of a copy
    $value['id'] = $i;
    $i++;
}