Programa PHP para encontrar elementos faltantes de una array

Tenemos que encontrar elementos en la array que faltan en una array en el rango desde el mínimo de la array hasta el máximo de la array.

Ejemplos:

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

Este problema se puede resolver iterando en una array observando la diferencia contigua entre los elementos. Pero en PHP podemos hacer uso de algunas funciones integradas para resolver el problema.

Tendremos que usar las siguientes dos funciones para este propósito:

  1. Función range() : esta función se usa para crear una array de elementos de cualquier tipo, como números enteros, alfabetos dentro de un rango determinado (de menor a mayor), es decir, el primer elemento de la lista se considera bajo y el último se considera alto.
  2. función array_diff() : si tenemos una array de elementos, podemos encontrar los elementos faltantes comparando dos arrays.

La idea de resolver este problema usando dos funciones incorporadas es, primero usar la función range() para crear una nueva array a partir del elemento inicial y el elemento máximo de la array original usando la función max(). Después de esto, aplicamos la función array_diff() para comparar la array recién creada y la array original, obteniendo así todos los elementos faltantes de la array original.

<?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)));    
?>

Producción:

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

Publicación traducida automáticamente

Artículo escrito por akash1295 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *