2017-02-01 15 views
5

Ben mapWithKeys denilen laravel tahsilat işlevini kullanarak bir dizi oluşturmak için çalışıyorlar, ama ne gerek elde edememişlerdir.laravel koleksiyonları mapWithKeys

İşte

benim kodu

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

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

Beklenen sonuç

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

Ama benim olsun ben bu kodu test ettik

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

cevap

2

olduğunu ve mükemmel çalışıyor:

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

Dizi ( [0] => Array ( [1900] => ) 1900) böyle alıyorum değerler. –

+0

Kodu güncelledim. –

+0

Teşekkürler. İşe yarıyor. Ama neden mapWithKeys fonksiyonu ile çalışmadığını merak ediyorum. [$ Value => $ value] değerini ['s'. $ Value => $ value] gibi bir şeye değiştirirsem çalışır. Sanırım sorun anahtar ve değer aynı. –