2017-02-01 92 views
5

我一直在尝试使用laravel的集合函数创建一个名为mapWithKeys的数组,但我无法实现我所需要的。Laravel集合mapWithKeys

这里是我的代码,

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

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

预期结果

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

但我得到的是

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

回答

2

我测试过此代码,它完美的作品:

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

阵列 ( [0] =>数组 ( [1900] => 1900 ) )我得到的值是这样的。 –

+0

我更新了代码。 –

+0

谢谢。有用。但我想知道为什么它不与mapWithKeys函数一起工作。如果我将[$ value => $ value]替换为['s'。$ value => $ value],它就可以工作。我认为问题是关键和价值是相同的。 –