Entfernen von Duplikaten mit array_unique
-
10-10-2019 - |
Frage
Ich habe ein Bild Uploader, die durch Fern arbeitet, so, wenn ein Benutzer eine Reihe von Links kommt, möchte ich werden verhindern doppelte Links hinzugefügt, so dass das Bild nicht zweimal kopiert und entfernt wird, so dass es die Links verläßt zu sein einzigartig ohne Duplikate.
$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);
Der Rest der Code funktioniert, aber ich bin immer nur nicht, warum es nicht funktioniert, ich habe auch versucht, eine foreach
Schleife, aber das hat nicht geholfen als auch.
Ich habe error_reporting
Satz E_ALL
aber es gibt keine Fehler. Ich benutze var_dump
auf dem Array und ich bekomme diese:
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"
}
Wie der array_unique
kommt keine Duplikate entfernen?
Lösung
array_unique()
zeigt ein neues Array , ist es nicht das Array anstelle ändern:
nimmt eine Eingangs Array und gibt ein neues Array ohne doppelte Werte.
$unique_images = array_unique($unique_images);
Andere Tipps
array_unique
zeigt das gefilterte Array, anstatt sie zu verändern. Ändern Sie Ihre letzte Zeile in:
$unique_images = array_unique($unique_images)
und es sollte funktionieren.
Sie können einfach tun:
$unique_images = array_unique(explode("\n", $links));
Die array_unique
Funktion gibt ein neues Array mit Duplikaten entfernt. Sie müssen also den Rückgabewert sammeln.
Auch explode
kehren Sie ein array , die Sie direkt zu array_unique
füttern können.
$unique_images = array_unique($unique_images);
sonst bist du einfach verwirft das Ergebnis