PHP program to find missing element(s) from an array

We have to find element(s) in array that are missing from an array in range from array minimum to array maximum.

Examples:

Input : arr[] = (1, 2, 3, 4, 6, 7, 8)
Output : 5
The array minimum is 1 and maximum is
8. The missing element in range from
1 to 8 is 5.

Input : arr[] = (10, 11, 14, 15)
Output : 12, 13

This problem can be solved by iterating in an array by observing the contiguous difference between elements. But in PHP we can make use of some inbuilt functions to solve the problem.

We will have to use the below two functions for this purpose:

  1. range() function: This function is used to create an array of elements of any kind such as integer, alphabets within a given range(from low to high) i.e, list’s first element is considered as low and last one is considered as high.
  2. array_diff() function: if we have an array of elements, we can find missing element(s) by comparing two arrays.

The idea to solve this problem using two inbuilt functions is to, first use range() function to create a new array from starting element and maximum element of original array using max() function. After this we apply array_diff() function to compare newly created array and original array thus getting all the missing elements of the original array.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
    // PHP code to find missing elements
  
    function not_present($list)
    {
        // Create an array with range from array 
        // minimum to maximum.
        $new_array = range(min($list), max($list));
  
        // Find those elements that are present
        // in new_array but not in given list
        return array_diff($new_array, $list);
    }
  
    // Driver code
    print_r(not_present(array(1, 2, 3, 4, 7, 8)));
    print_r(not_present(array(10, 11, 12, 14, 15, 16)));    
?>

chevron_right


Output:

Array
(
    [4] => 5
    [5] => 6
)
Array
(
    [3] => 13
)


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.