Может быть, я ошибаюсь, но я думаю, что единственный способ, чтобы сбросить элемент в массиве будет выглядеть вверх по индексу, который соответствует значению, на которое ссылается переменная, которую вы имеете, затем отключает этот элемент.
$arr = array('a' => 1, 'b' => 2);
$xxx = &$arr['a'];
$keyToUnset = null;
foreach($arr as $key => $value)
{
if($value === $xxx)
{
$keyToUnset = $key;
break;
}
}
if($keyToUnset !== null)
unset($arr[$keyToUnset]);
$unset($xxx);
Ну, во всяком случае, что-то в этом роде. Однако имейте в виду, что это не очень эффективно, потому что каждый раз, когда вам нужно отменить элемент, вы должны перебирать весь массив, ища его.
Предполагая, что у вас есть контроль над использованием $ xxx, вы можете захотеть использовать его для хранения ключа в массиве вместо ссылки на элемент ключа. Таким образом, вам не нужно будет искать массив, если вы хотите удалить элемент. Но вы должны заменить все сайты, которые используют $ ххх с разыменованием массива:
$arr = array('a' => 1, 'b' => 2);
$xxx = 'a';
// instead of $xxx, use:
$arr[$xxx];
// to unset, simply
unset($arr[$xxx]);
Невозможно снять ($ arr); ?? – Nalaka526