给定这样的数组:
Array => (
[0] => 1,
[1] => 2,
[2] => 3,
[3] => 5,
[4] => 6
)
Run Code Online (Sandbox Code Playgroud)
找到该数组中第一个"可用"ID的最简单方法是什么 - 也就是说,序列[1,2,3...n]中第一个不存在于数组中的值?在这种情况下,正确的答案是4.
我可以使用一些while循环或使用临时变量进行排序,但这有点混乱,所以我很想知道是否有人能想出一个"聪明"的解决方案.
我的PHP技能有点生疏,但你不能使用range和array_diff:
$missing = array_diff(range(1, end($myArray)+ 1), $myArray);
echo $missing[0];
Run Code Online (Sandbox Code Playgroud)
更新了Tatu Ulmanen的更正(我告诉你我的PHP生锈了;-))