对array_values的误解

mpi*_*iot 5 php php-7 php-7.2

当我这样做时,我有一个问题就是无法正确地使用array_values:

$array[] = 'data1'; // I want [0 => 'data1']
unset($array[0]); // I want []
$array = array_values($array); // I want [] but keys resetted
$array[] = 'data2'; // I want [0 => 'data2']
$array[] = 'data3'; // I want [0 => 'data2', 1 => 'data3']
dump($array);
Run Code Online (Sandbox Code Playgroud)

我的结果是:

array:2 [?
  1 => "data2"
  2 => "data3"
]
Run Code Online (Sandbox Code Playgroud)

但我想要:

array:2 [?
  0 => "data2"
  1 => "data3"
]
Run Code Online (Sandbox Code Playgroud)

也许有人可以向我解释一下?因为我有点失落: - /

例如,如果我有一个包含10个值的数组,则删除第3个值,然后执行array_valueson,它运行良好.

但是,如果我从数组中删除最后一个值,那么当我执行array_value时,我添加的下一个值始终为id 1而不是0.

Jir*_*dil 1

此行为已被报告为错误: https: //bugs.php.net/bug.php?id =75433 以及(显然是这篇文章的结果): https: //bugs.php.net/bug .php?id=75653