Gibt es eine Möglichkeit, das Array zu sortieren, ohne die Teamnamen als Array-Schlüssel zu verlieren?
Komplex857
Verwenden Sie die uasort Funktion, die die Assoziationen Schlüssel => Wert intakt halten sollte.
(Nebenbemerkung: Sie können tun return $a['points'] - $b['points'] anstelle des ifs, bzw. ab php7 das Raumschiff <=> Operatordanke mbomb007 für das Update)
Ab PHP 7 können Sie den Spaceship-Operator verwenden <=> statt abzuziehen. Siehe die Antwort auf diese verwandte Frage
Diese Funktion sortiert ein Array so, dass Array-Indizes ihre Korrelation beibehalten mit den Array-Elementen, denen sie zugeordnet sind, mithilfe einer benutzerdefinierten Vergleichsfunktion.
U kann ein assoziatives Array wie folgt nach seinem Wert sortieren
Vielen Dank für dieses Code-Snippet, das möglicherweise eine begrenzte, sofortige Hilfe bietet. A richtige Erklärung würde seinen langfristigen Wert erheblich verbessern, indem es aufzeigt, warum dies eine gute Lösung für das Problem ist, und es für zukünftige Leser mit anderen, ähnlichen Fragen nützlicher machen würde. Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, einschließlich der von Ihnen getroffenen Annahmen.
– Steinbock
30. Juli 2018 um 8:54 Uhr
Ich kann mir kein mögliches Szenario vorstellen, in dem ich diese Art von indirektem/verschachteltem Code in mein Projekt einladen möchte. Abgesehen von der Tatsache, dass diese Antwort dieselbe Datenstruktur ignorierte, warum sollte jemand mit einem flachen assoziativen Array anrufen? array_values()Dann rsort()und führen Sie dann iterierte Aufrufe von durch array_search() Und unset()???
– mickmackusa
15. März um 21:04 Uhr
mickmackusa
Der Vollständigkeit halber sollte diese Seite einen Ansatz mit enthalten array_multisort() — diese Funktion behält standardmäßig nicht-numerische Tasten bei.
Das heißt, es ist nichts falsch daran, anzurufen uasort() mit dem Raumschiffbetreiber. Beachten Sie, dass $b Daten befinden sich auf der linken Seite des Dreiwege-Vergleichsoperators und $a befindet sich auf der rechten Seite, um eine absteigende Sortierung zu erreichen.
Vielen Dank für dieses Code-Snippet, das möglicherweise eine begrenzte, sofortige Hilfe bietet. A richtige Erklärung würde seinen langfristigen Wert erheblich verbessern, indem es aufzeigt, warum dies eine gute Lösung für das Problem ist, und es für zukünftige Leser mit anderen, ähnlichen Fragen nützlicher machen würde. Bitte bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, einschließlich der von Ihnen getroffenen Annahmen.
– Steinbock
30. Juli 2018 um 8:54 Uhr
Ich kann mir kein mögliches Szenario vorstellen, in dem ich diese Art von indirektem/verschachteltem Code in mein Projekt einladen möchte. Abgesehen von der Tatsache, dass diese Antwort dieselbe Datenstruktur ignorierte, warum sollte jemand mit einem flachen assoziativen Array anrufen? array_values()Dann rsort()und führen Sie dann iterierte Aufrufe von durch array_search() Und unset()???
– mickmackusa
15. März um 21:04 Uhr
14491700cookie-checkSortieren Sie ein mehrdimensionales assoziatives Array nach einer Spalte und behalten Sie die Schlüssel der ersten Ebene beiyes