在数组中取消设置值后如何重置键?

Pet*_*ter -2 php arrays

采取以下数组:

$fruits = [
    'apple', 'banana', 'grapefruit', 'orange', 'melon'
];
Run Code Online (Sandbox Code Playgroud)

葡萄柚令人恶心,所以我想取消它。

$key = array_search('grapefruit', $fruit);
unset($fruit[$key]);
Run Code Online (Sandbox Code Playgroud)

葡萄柚不在我的$fruit数组中,但是我的键不再正确编号。

array(4) {
    [0] => 'apple'
    [1] => 'banana'
    [3] => 'orange'
    [4] => 'melon'
}
Run Code Online (Sandbox Code Playgroud)

我可以遍历该数组并创建一个新数组,但我想知道是否有更简单的方法来重置密钥。

Aks*_*gde 5

使用 array_values()

array_values( $array );
Run Code Online (Sandbox Code Playgroud)

检测结果:

[akshay@localhost tmp]$ cat test.php
<?php

$fruits = [
    'apple', 'banana', 'grapefruit', 'orange', 'melon'
];

$key = array_search('grapefruit', $fruits);
unset($fruits[$key]);

// before
print_r($fruits);

//after
print_r(array_values($fruits));
?>
Run Code Online (Sandbox Code Playgroud)

执行:

[akshay@localhost tmp]$ php test.php
Array
(
    [0] => apple
    [1] => banana
    [3] => orange
    [4] => melon
)
Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [3] => melon
)
Run Code Online (Sandbox Code Playgroud)