Сервер nginx+php-fpm PHP 7.2
Я пробовал http://sandbox.onlinephpfunctions.com/code/200d19b2663ee01391b9d0a1745ab677b3f219df
$accounts = [
0 => [
"active" => true
],
1 => [
"active" => false
]
];
foreach($accounts as &$value) {
if ($value['active'] === false) {
var_dump($value);
unset($value);
}
}
unset($value);
print_r($accounts);
Но сброс не работает. Если использовать $value = null; в цикле тогда установится нормально.
Я не могу понять. Зачем удалять $accounts[1]['active'] ?






Решение
$accounts = [
0 => [
"active" => true
],
1 => [
"active" => false
]
];
foreach($accounts as $index=>$value) {
if ($value['active'] === false) {
var_dump($value);
unset($accounts[$index]);
}
}
//unset($value);
print_r($accounts);
Хорошо, но почему бы не работать напрямую с модификацией & Можете объяснить?
Потому что, когда вы unset($value); вы сбрасываете настройки $accounts[1]['active'], а не $accounts[1]
потому что foreach возвращает каждую часть массива
Реферальная ссылка codeburst.io/… и tutorialspoint.com/php/php_loop_types
Это потому, что вы сбрасываете настройки
$accounts[1]['active'], а не$accounts[1]