PHP | Eliminar elementos duplicados de Array

Se le proporciona una array de n elementos. Debe eliminar los valores duplicados sin usar ningún bucle en PHP e imprimir la array.

Ejemplos:

Input : array[] = {2, 3, 1, 6, 1, 6, 2, 3}
Output : array (
                [6] => 2
                [7] => 3
                [4] => 1
                [5] => 6
               )

Input : array[] = {4, 2, 7, 3, 2, 7, 3}
Output : array (
                [0] => 4
                [4] => 2
                [5] => 7
                [6] => 3 
               )

En C / Java , tenemos que atravesar la array y para cada elemento, debe verificar si su duplicado está presente. Pero PHP proporciona una función incorporada (array_flip()) con cuyo uso podemos eliminar elementos duplicados sin el uso de loop.

array_flip () devuelve una array en orden inverso, es decir, las claves de la array se convierten en valores y los valores de la array se convierten en claves.

Tenga en cuenta que los valores de la array deben ser claves válidas, es decir, deben ser enteros o strings. Se emitirá una advertencia si un valor tiene un tipo incorrecto y el par clave/valor en cuestión no se incluirá en el resultado.

Nota: si un valor tiene varias apariciones, la clave más reciente se usará como su valor y todas las demás se perderán. Además, como array_flip() devuelve una array con claves preservadas, usaremos array_values() que reordenará las claves.

Enfoque: la idea es usar esta propiedad de la función array_flip() de seleccionar la última clave como su valor si el valor tiene múltiples ocurrencias. Usaremos la función array_flip() dos veces para eliminar los valores duplicados. Al usar la función array_flip() por primera vez, devolverá una array con claves y valores intercambiados con duplicados eliminados. Al usarlo por segunda vez, lo reordenará nuevamente a la configuración original.

A continuación se muestra la implementación de la idea anterior:

<?php
    // define array
    $a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);
      
    // print original array
    echo "Original Array : \n";
    print_r($a);
     
    // remove duplicate values by using 
    // flipping keys and values
    $a = array_flip($a);
   
    // restore the array elements by again 
    // flipping keys and values.
    $a = array_flip($a);
  
    // re-order the array keys
    $a= array_values($a);
  
    // print updated array
    echo "\nUpdated Array : \n ";
    print_r($a);
?>

Producción:

Original Array : 
Array
(
    [0] => 1
    [1] => 5
    [2] => 2
    [3] => 5
    [4] => 1
    [5] => 3
    [6] => 2
    [7] => 4
    [8] => 5
)

Updated Array : 
Array
(
    [0] => 1
    [1] => 5
    [2] => 2
    [3] => 3
    [4] => 4
)

Publicación traducida automáticamente

Artículo escrito por Abhinav96 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 *