Blaubart: Bestimmte Array Werte löschen

Beitrag lesen

Tach.

Ich glaub das blick ich nicht so recht mir der Vergleichsfunktion.
Ich habe mal sowas versucht:

function sortiere($a, $b) {
  $check = explode("#@#",$a);
  $reversekey = $check[1]. "#@#" . $check[0];
  return $reversekey;
}

uksort ($main_arr, "sortiere");

So funktioniert das auch nicht. Die Callback-Funktion soll -1, 0 oder 1 zurückgeben, nicht den Schlüssel.

Allerdings stelle ich beim Schreiben eines Codebeispiels für Dich gerade fest, daß wir mit meinem Ansatz auch nicht zuverlässig zum Ziel kommen. Da beim Sortieren nicht festgelegt ist, daß jedes Element mit jedem anderen verglichen wird (das ist schließlich kein Bubble Sort), stehen u. U. zum Schluß eben nicht alle Paar zusammen.

Anstatt also weiter nach möglichen Dreizeilerlösungen zu suchen, sollte man das Aussortieren am besten zu Fuß erledigen: Elementweise durchs Array gehen; den Schlüssel (normal und vertauscht) mit einer Liste schon gesehener Schlüssel vergleichen; falls der Schlüssel noch nicht in dieser Liste existiert, hinzufügen und das Element in ein Ergebnisarray übernehmen; Originalarray wegwerfen.

--
Once is a mistake, twice is Jazz.