Oder Sie können ein Makro verwenden, um Zugriff auf das Backing-Array zu erhalten.
Collection::macro('ksort', function(){
//macros callbacks are bound to collection so we can safely access
// protected Collection::items
ksort($this->items);
return $this;
//to return a new instance
//return collect($this->items);
});
Die letzte Lösung könnte sehr nützlich sein, wenn Sie Sammlungen an vielen Stellen in Ihrer Codebasis nach Schlüsseln sortieren müssen
@zarcel, während es in Google erscheint, ist dies nicht nur zu Ihrem Vorteil.
– Asche
5. Juni 2017 um 22:50 Uhr
Ich stimme zu, auch wenn die Frage für den Fragesteller nicht mehr relevant ist, könnte jemand anderes die Antworten nützlich finden. Außerdem könnten in zwei Jahren neue Lösungen auftauchen.
– Dragas
22. November 2017 um 11:00 Uhr
du hast verpasst return $this; nach ksort($this->items); im Makro. =)
– Arash
26. November 2017 um 8:24 Uhr
@ArashMoosapour, das die Instanz zurückgibt, ist nicht obligatorisch, da ksort einen Verweis auf das ursprüngliche Array nimmt
– Peter Chaula
26. November 2017 um 10:46 Uhr
@ArashMoosapour Ich habe die Änderung vorgenommen, um die Sammlungsinstanz zurückzugeben. “……. ksort bei Sammlung singen, es gibt null zurück “. Sie sollten den Rückgabewert keiner Variablen zuweisen. Rufen Sie einfach ksort auf
– Peter Chaula
22. Februar 2018 um 5:37 Uhr
Für jede Sortierung array von keywürde ich natives PHP vorschlagen functionksort().