Ví dụ
<?php
function missing_nums($my_arr, $arr_len, $val) {
sort($my_arr);
$i = 0;
while ($i < $val && $my_arr[$i] <= 0)
$i++;
$count = 0;
$current_num = 1;
while ($count < $val && $i < $arr_len) {
if ($my_arr[$i] != $current_num) {
echo $current_num . " ";
$count++;
} else
$i++;
$current_num++;
}
while ($count < $val) {
echo $current_num . " ";
$current_num++;
$count++;
}
}
$my_arr = array(6, 7, 9);
$arr_len = sizeof($my_arr);
$val = 5;
print_r("The missing numbers in the array is ");
missing_nums($my_arr, $arr_len, $val);
?>
Kết quả
The missing numbers in the array is 1 2 3 4 5
Giải thích
Hàm missing_nums tìm các số tự nhiên bị thiếu từ mảng. Sắp xếp mảng, bỏ qua số ≤0. Duyệt so sánh với counter từ 1, nếu khác thì in ra (số thiếu). Code gốc có lỗi biến $n, $k, $arr chưa khai báo. Đã sửa dùng $val, $my_arr.
Lưu ý: Logic này giả định mảng chứa số tự nhiên dương, tìm các số từ 1 trở lên chưa có trong mảng.