, :
$values = array_values($id_array);
$values[] = max($values) + 1;
$combined = array_values(array_flip($values) + array_keys($values));
$missing = isset($combined[count($values) + 1])
? $combined[count($values) + 1]
: end($values);
, . range() , array_diff() . , , ( end($values) false, , ).
, , . array_diff() ( range()) , .