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 )