Eliminación de duplicados con array_unique
-
10-10-2019 - |
Pregunta
I creó un cargador de imágenes que funciona mediante control remoto, por lo que cada vez que un usuario entra en un montón de enlaces, quiero prevenir enlaces duplicados que se agregan para que la imagen no se copia dos veces y se elimina por lo que deja a los enlaces a estar única sin duplicados.
$break = explode("\n", $links);
$count = count($break);
$unique_images = array();
for($i = 0; $i < $count; $i++)
{
array_push($unique_images, $break[$i]);
}
array_unique($unique_images);
El resto de las obras de código, pero yo no estoy por qué no está funcionando, también intentaron un bucle foreach
pero eso no ayudó también.
he puesto a error_reporting
E_ALL
pero no hay errores. Yo uso var_dump
en la matriz y me sale esto:
array(3)
{
[0]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg"
[1]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg"
[2]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg"
}
¿Cómo es que la array_unique
no elimina los duplicados?
Solución
array_unique()
retornos una nueva matriz , que no modifica la matriz en su lugar:
toma una matriz de entrada y devuelve una nueva matriz sin valores duplicados.
$unique_images = array_unique($unique_images);
Otros consejos
array_unique
retornos la matriz filtrada, en lugar de alterarla. Cambiar la última línea en:
$unique_images = array_unique($unique_images)
y debería estar trabajando.
Sólo puede hacer:
$unique_images = array_unique(explode("\n", $links));
La función array_unique
devuelve una nueva matriz con duplicados eliminados. Así que hay que recoger su valor de retorno.
también devuelve explode
usted un array , que se puede alimentar directamente a array_unique
.
$unique_images = array_unique($unique_images);
de lo contrario usted es simplemente descartando el resultado