ich habe es versucht ksort, Sortieren, usort aber nichts scheint zu funktionieren. Ich versuche, basierend auf dem zu sortieren Namensschlüssel zwei Ebenen tiefer.
Gibt es eine einfache Möglichkeit, dies zu tun, oder muss ich eine benutzerdefinierte Sortierfunktion schreiben?
Wie hast du es mit usort versucht?
– Markus Bäcker
30. April 2013 um 18:28 Uhr
Ich habe meinen Code in der Frage hinzugefügt.
– Benutzer1216398
30. April 2013 um 18:31 Uhr
Eine Zeichenfolge von einer Zeichenfolge subtrahieren?!? Kein Wunder, dass es nicht funktioniert hat, haben Sie sich die Beispiele auf der phpdocs-Webseite angesehen? php.net/manual/en/function.usort.php – speziell Beispiel Nr. 2
@decez Hallo! Danke für Kommentar und Downvote. Könntest du deine Meinung belegen? Vielen Dank im Voraus.
– voodoo417
28. September 2017 um 18:44 Uhr
usort($mydata, function ($a, $b) { return strcmp($a['name'], $b['name']); }) – Da dies einwandfrei funktioniert, ja, würde ich sagen, dass Ihres zu kompliziert ist.
– verzeihen ♦
28. September 2017 um 19:12 Uhr
@deceze ja, natürlich. Aber oben (meins) ist eine “üblichere” Lösung. Ich könnte sagen zB 100 Situationen (eigentlich unendlich) – wo meine Lösung ohne Änderungen funktioniert. Einzellösung. Sie werden 100 usort-Funktionen schreiben (dasselbe – eigentlich unendlich). Natürlich für einzigartige Situation – einzigartige Lösung. Es gibt nur eine “gemeinsame” Lösung. OK. Ich habe dich verstanden. Vielleicht schreibst du jedes Mal für jedes neue Projekt Klassen wie Response, Request, Controller etc. ?
– voodoo417
28. September 2017 um 21:16 Uhr
1) Für einen so kurzen Einzeiler ist es gar nicht nötig, etwas Allgemeines zu schreiben, kaum vergleichbar mit der MVC-Infrastruktur. 2) Selbst für eine generische Funktion ist dies ziemlich kompliziert; siehe stackoverflow.com/a/22829326/476.
<?php
$a=array(
array('a'=>5,'b'=>7),array('c'=>4,'d'=>2),array('e'=>0,'f'=>12)
);
function cmp_sort($x,$y){ //your function to compare two keys
if($x===$y)
return 0;
else
return ($x<$y?1:-1);
}
uasort($a,'cmp_sort'); //call user-defined compare function
print_r($a); //printing the sorted array
?>
Wie hast du es mit usort versucht?
– Markus Bäcker
30. April 2013 um 18:28 Uhr
Ich habe meinen Code in der Frage hinzugefügt.
– Benutzer1216398
30. April 2013 um 18:31 Uhr
Eine Zeichenfolge von einer Zeichenfolge subtrahieren?!? Kein Wunder, dass es nicht funktioniert hat, haben Sie sich die Beispiele auf der phpdocs-Webseite angesehen? php.net/manual/en/function.usort.php – speziell Beispiel Nr. 2
– Markus Bäcker
30. April 2013 um 18:46 Uhr