从数组中删除所有值,同时保持键不变

2022-08-30 12:34:03

我真的必须这样做才能重置阵列吗?

foreach ($array as $i => $value) {
    unset($array[$i]);
}

编辑:

这个更有意义,因为前一个相当于$array=array();

foreach ($array as $i => $value) {
    $array[$i]=NULL;
}

答案 1
$keys = array_keys($array);
$values = array_fill(0, count($keys), null);
$new_array = array_combine($keys, $values);

获取密钥

获取具有相同元素数的 null 数组

将它们组合在一起,使用键和键,并将 null 作为值

正如评论所暗示的那样,从PHP 5.2开始,这很容易,array_fill_keys

$new_array = array_fill_keys(array_keys($array), null);

答案 2

用旧键和空值填充数组

$array = array_fill_keys(array_keys($array), null)