Gibt es ein Befehl in PHP mit dem ich ein Array auf doppelte Einträge durchsuchen und anschließend löschen kann? Beziehungsweise wie könnte man so etwas machen ?
nicht einfacher, aber bei wenigen Doubletten schneller:
(angenommen, dein Array heißt $a und UNBEDINGT eindimensional)
1) $b = array(); for (reset($a); $x=each($a) $b[$x[1]][] = $x[0];
Jetzt hast du in $b ein Array indiziert mit den Werten von $a und den einem Array aus Indizes jedes Auftretens.
2) for (reset($b); $x=each($b) if (is_array($x[1]) && count($x[1]>1))for ($i=1; $i<count($x[1]); $i++) unset($a[$x[1][$i]]);
Die äußere Schleife wandert durch das Zaehler-Array $b; ist ein Wert in $a mehr als einmal vorhanden, so werden in der inneren Schleife alle Vorkommen bis auf das erste aus $a gelöscht.
3) $a = explode(';',implode(';',$a));
indiziert das Array neu, falls es von 0 fortlaufend indiziert sein soll.
-=* Titus *=-
| php pro |
|nerd for life|
"""""""""""""""
Kommentar