2017-02-01 14 views
5

मैं mapWithKeys नामक लार्वेल के संग्रह फ़ंक्शन का उपयोग करके एक सरणी बनाने की कोशिश कर रहा हूं, लेकिन मुझे जो चाहिए वह प्राप्त नहीं कर सका।लैरवेल संग्रह नक्शा WithKeys

यहाँ मेरी कोड है,

$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

धन्यवाद। यह काम करता हैं। लेकिन मैं सोच रहा हूं कि यह नक्शा WithKeys समारोह के साथ क्यों काम नहीं कर रहा है। यदि मैं [$ s =। $ Value => $ value] की तरह कुछ [$ value => $ value] को प्रतिस्थापित करता हूं तो यह काम करता है। मुझे लगता है कि समस्या कुंजी और मूल्य समान है। –