dedlfix: Array-Duplikate entfernen??

Beitrag lesen

Hi!

ich möchte alle Arrays entfernen, bei denen der wert des schlüssels[Nummer] doppelt oder öfter in einem anderen Array vorhanden ist. es soll immer nur das Array mit der höchsten vorhandenen index-zahl übrigbleiben, [...]

Leg als Zwischenschritt ein Array an, das als Key deinen Unique-Wert bekommt und als Wert die Nummer des betroffenen Datensatzes, also dessen Index.

$temp = array();
foreach ($deinArray as $index => $record)
  $temp[$record['Nummer']] = $index;

Nun hast du in $temp eine duplikatlose Sammlung von Index-Nummer von $deinArray. Wenn $record['Nummer'] schon als Key in $temp vorhanden war, dann hat der neue Wert von $index den alten ersetzt. Voraussetzung ist, dass $deinArray schon richtig sortiert ist, also dass die Datensätze je "aufzuhebenster" desto weiter hinten stehen. Die Schlüssel in $temp interessieren nun nicht weiter, es kommt nur darauf an, welche Index-Nummern als Werte enthalten sind. Jetzt kannst du $deinArray durchlaufen und alle Schlüssel ignorieren, die nicht als Wert in $temp enthalten sind.

Lo!