• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Sortieren eines mehrdimensionalen Arrays

silent321

New member
Hallo!

Da ich mich mit PHP nicht gut auskenne muss ich euch um Hilfe bitten.

Ich habe ein Mehrdimensionales Array, das sieht wie folgt aus:

PHP:
$data[1] = array('id' => 2, 'Andreas' => 'Mustermann', 'entfernung' => 48);

$data[2] = array('id' => 5, 'Peter' => 'Mustermann', 'entfernung' => 12);

$data[3] = array('id' => 2, 'username' => 'Mustermann', 'entfernung' => 35);

Ich möchte jetzt das array $data nach dem "Entfernung"-Wert des Arrays sortieren, welches im arraywert $data steht.

Es ist dabei wichtig, dass nur das $data[] element sortiert wird, damit id username und entfernung zusammen in einem array bleiben.

Die Lösung für meinen Wunsch wäre:

PHP:
$data[1] = array('id' => 5, 'Peter' => 'Mustermann', 'entfernung' => 12);

$data[2] = array('id' => 2, 'username' => 'Mustermann', 'entfernung' => 35);

$data[3] = array('id' => 2, 'Andreas' => 'Mustermann', 'entfernung' => 48);
(aufsteigend sortiert)

Ich weis, dass meine Lösung array_multisort() ist, jedoch kann ich durch meine schlechten PHP kenntnisse die Funktion nicht auf meinen Fall übertragen.

Ich würde mich freuen, Ihr mir helfen könnt.

Gruß
 
PHP: usort - Manual

ist die Funktion die du brauchst. Deine Vergleichsfunktion erhält 2 Elemente (die Benutzerarrays) deines Arrays als Eingabe. In diesen musst du dann die Entfernung mit einander vergleichen. In deinem Fall reicht es sogar die Differenz der beiden zurückzugeben.
 
Danke schonmal für deine Hilfe.

Leider weis ich nicht wie ich diese "vergleichsdifferenz"-Funktion schreiben soll.

Gruß
 
Die Lösung steht schon fast 1:1 im Manual (Example #1). Ersetze einfach $a durch $a['entfernung'] und $b durch $b['entfernung'].
 
Zurück
Oben