2017-02-01 3 views
5

Ich habe versucht, ein Array mit Laravel Sammlungsfunktion namens mapWithKeys zu erstellen, aber ich konnte nicht erreichen, was ich brauche.Laravel Sammlungen mapWithKeys

Hier ist mein Code,

$years = range(1900, date('Y')); 

return collect($years)->mapWithKeys(function($value){ 
    return [$value => $value]; 
})->all(); 

Erwartetes Ergebnis

Array 
(
    [1900] => 1900 
    [1901] => 1901 
    [1902] => 1902 
    .... 
    [2017] => 2017 
) 

Aber ich

Array 
(
    [0] => 1900 
    [1] => 1901 
    [2] => 1902 
    ... 
    [117] => 2017 
) 

Antwort

2

ich diesen Code getestet haben und es funktioniert perfekt, was erhalten:

$years = range(1900, date('Y')); 
return collect($years)->map(function($i) { 
    return ['year' => $i]; 
}, $years)->pluck('year', 'year'); 
+0

Array ( [0] => Array ( [1900] => 1900 ) ) Ich bin Werte wie diese bekommen. –

+0

Ich habe den Code aktualisiert. –

+0

Danke. Es klappt. Aber ich frage mich, warum es nicht funktioniert mit mapWithKeys Funktion. Wenn ich [$ value => $ value] zu etwas wie ['s'. $ Value => $ value] ersetze, funktioniert es. Ich denke, das Problem besteht darin, dass Schlüssel und Wert gleich sind. –