我在更改嵌套数组的值时遇到了困难。我正在尝试将'admin' => '1'
值更改为每个嵌套数组的'admin' => '0'
。我尝试了一个foreach循环,但逻辑不正确。我怎么能纠正这个?还是有更好的方法?
阵列
'user' => array(
// Regular user, admin
array(
'id' = '1'
'admin' => '1',
),
array(
'id' = '2'
'admin' => '1',
),
array(
'id' = '3'
'admin' => '1',
),
)
循环:
foreach ($users as $admin => $value) {
if ($value == 1) {
$value == 0;
}
}
答案 0 :(得分:1)
如果要在源数组中编辑它,则需要通过引用传递值。
foreach ($users as $admin => &$value) {
if ($value['admin'] == 1) {
$value['admin'] = 0;
}
}
答案 1 :(得分:0)
您正在检查管理员的类型两次(==
)。您需要=
的赋值语句。
您还需要访问要循环的阵列的admin
键。
这应该更像是:
foreach ($users as $admin => $value) {
if ($value['admin'] == 1) {
// ^ Use ['key'] to access the value of that key
$value['admin'] = '0';
// ^ This assigns 0 to the value.
}
}
答案 2 :(得分:0)
您忘记在foreach语句<$ p>中传递$ admin的'admin'键
使用
$value['admin']