In PHP, usort Funktion nimmt zwei Argumente: Array zu sortieren und einen Rückruf. Der Rückruf benötigt auch zwei Argumente: $ a und $ b. Dann vergleichen wir diese beiden in irgendeiner Weise, die wir wollen. Es überrascht mich immer, denn dieser Anwendungsfall für usort ist nicht allzu üblich. Normalerweise sortieren wir Werte nach derselben Eigenschaft oder verwenden dieselben Logik für $ a und $ b. Zum Beispiel, wenn wir durch die Länge sortieren:Gibt es in PHP einfach usort?
$animals = ['dog', 'tiger', 'giraffe', 'bear'];
usort($animals, function ($a, $b) {
return strlen($a) - strlen($b);
});
das funktionieren wird, aber wir müssen sagen strlen
zweimal. Es wäre schöner, es so zu sagen:
usort($animals, function ($element) {
return strlen($element);
});
Oder auch so:
usort($animals, 'strlen');
ich diese Art der Funktion geschrieben habe ich (PHP 7 Leckereien mit, aber es kann auf einfache Weise geändert werden PHP 5):
Es funktioniert perfekt, aber ist es nicht in PHP bereits in einer anderen Funktion gebaut? Wenn nicht, warum unterstützt PHP diese beliebte und bequeme Art der Sortierung nicht?
für den letzten Teil möchten Sie vielleicht die PHP-Gruppe anstelle von uns fragen ... lol – Andrew
Ich habe Usort noch nie verwendet, und wenn ich mir das anschaue, bin ich etwas verwirrt von der Callback-Funktion. Die Strale von $ a ist 3 und die Strale von $ b ist 5. Also 3-5 ist -2? Wie benutzt man die Nummer -2 um $ a und $ b zu sortieren? Entschuldigung, ich weiß, du bist derjenige, der hier die Fragen stellt, aber ich bin nur sehr neugierig. – frosty
@Andrew Du hast Recht, aber es ist, wenn ich sicher bin, dass ich etwas nicht vermisse. Das "Warum" bedeutet hier "Vermisse ich etwas?". –