Ví dụ
<?php
function missing_values($my_arr, $len, $n) {
sort($my_arr);
$i = 0;
while ($i < $n && $my_arr[$i] <= 0)
$i++;
$count = 0;
$curr = 1;
while ($count < $n && $i < $len) {
if ($my_arr[$i] != $curr) {
echo $curr . " ";
$count++;
} else
$i++;
$curr++;
}
while ($count < $n) {
echo $curr . " ";
$curr++;
$count++;
}
}
$my_arr = array(6, 8, 0);
$len = sizeof($my_arr);
$n = 5;
print_r("The missing values of the array are ");
missing_values($my_arr, $len, $n);
?>
Kết quả
The missing values of the array are 1 2 3 4 5
Giải thích
Hàm missing_values nhận mảng, độ dài, và số lượng số thiếu cần tìm. Mảng được sắp xếp. Biến $i khởi tạo 0, bỏ qua các phần tử <= 0. $count đếm số lượng đã tìm thấy, $curr bắt đầu từ 1. Duyệt mảng so sánh với $curr, nếu khác thì in ra (số thiếu), tăng count. Nếu cùng thì tăng i. Cuối cùng nếu chưa đủ n số thiếu, tiếp tục in các số tiếp theo.
Lưu ý: Code gốc có lỗi sort($my_arr, $len) - sort() chỉ nhận 1 tham số. Đã sửa trong phiên bản này.