误解array_values

Misunderstanding of array_values

我无法正确理解 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);

我有结果:

array:2 [▼
  1 => "data2"
  2 => "data3"
]

但我想要:

array:2 [▼
  0 => "data2"
  1 => "data3"
]

也许有人可以向我解释一下?因为我有点迷路了:-/

例如,如果我有一个包含 10 个值的数组,删除第 3 个值,然后执行 array_values,效果很好。

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

此行为已被报告为错误:https://bugs.php.net/bug.php?id=75433 and (apparently as the result of this post) also: https://bugs.php.net/bug.php?id=75653