Laravel Collection
Laravel-Collection bieten dir die Möglichkeit, Arrays auf verschiedene Arten zu transformieren.
Collections erstellen
        Die Erstellung einer Collection aus einem Array geschieht über die collect-Funktion. Dieser übergeben wir unser Array und erhalten als Ergebnis eine Collection zurück.
        Diese Collection können wir nun weiterhin wie ein Array bearbeiten, haben aber darüber hinaus die Möglichkeit Collection-Funktionen zu verwenden.
    
$array = ['eins', 'zwei', ['2te Dimension' => 'drei']]; $collection = collect($array); // verwandelt $array in eine Collection
        Daten, die mit Laravel Eloquent aus der Datenbank abgefragt wurden, sind übrigens bereits Collections und müssen nicht erst per collect umgewandelt werden.
    
Collection-Funktionen
Besonders praktisch an Collections ist die Möglichkeit, mehrere Funktionen hintereinander auf eine Collection anzuwenden. Bei Transformationen, die per Callback übergeben werden müssen wir nur darauf achten, das Ergebnis jeweils per return zurückzugeben.
$transformiert = $collection->reverse()->map(function($value, $key) {
    // Collection transformieren
    return ...
});
    Nützliche Funktionen
Collections enthalten eine Fülle an Funktionen, um Arrays zu verändern.
 Hier sind ein paar der wichtigsten:
map
    Mit map ist die einfachste Funktion um einezelne Transformationsregel per Callback-Funktion zu übergeben, die auf jedes Element angewendet wird.
$transformation = $collection->map(function($value, $key) {
    return $value + 1;
});
    sortBy
    Angenommen wir haben ein mehrdimensionales Array mit mehreren Keys pro Element. Dann können wir per sortBy bestimmen anhand welchen Keys unsere Collection sortiert werden soll.
$array = [
    ['Alter' => 23, 'Name' => 'Jürgen'],
    ['Alter' => 18, 'Name' => 'Nadine']
];
$transformation = collect($array)->sortBy('Alter');
    Wenn absteigend sortiert werden soll, kann stattdessen die sortByDesc Funktion verwendet werden.
splice
    splice schneidet alle Elemente ab einem bestimmten Index ab.
$array = ['Melanie', 'Wolf', 'Dieter', 'Susanne']; $transformation = collect($array)->splice(1); // alles ab einschließlich 'Wolf'
toJson
    Besonders nützlich, wenn Daten per Ajax abgefragt werden: Die Collection wird in das Json-Format transformiert.
$array = [
    ['Alter' => 23, 'Name' => 'Jürgen'],
    ['Alter' => 18, 'Name' => 'Nadine']
];
$json = collect($array)->toJson();
    contains
    contains gibt true oder false zurück, je nachdem eine Collection den gesuchten Wert enthält, oder nicht.
$array = ['eins', 'zwei', 'vier'];
$json = collect($array)->contains('vier'); // ergibt true
    filter
    Die filter-Funktion kann zum Herausfiltern von Elementen aus einer Collection verwendet werden. Die Filterbedingung wird dabei direkt in der übergebenen Callback-Funktion angegeben.
$array = [2, 4, 8, 16, 23, 32];
$filtered = collect($array)->filter(function($wert, $key) {
   return $wert % 2 === 0;
});
        // Ergebnis: [2, 4, 8, 16, 32]
    				
					Du arbeitest in einer Agentur oder als Freelancer?
					Dann wirf doch mal einen Blick auf unsere Software FeatValue.
				
Über uns
 
						Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project
