我有像这样的对象数组
[
{
"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的初学者,请帮助。我做错了什么?
答案 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++;
}