Laravel Blade 显示 select 下拉列表的值不正确

Laravel Blade is displaying incorrect values for select dropdown

我正在使用 Laravel 5.4 并在 Blade 中创建一个表单,其中一个 <select> 是所有月份中的一个。

@php (
$months = [
    '1'=>'01 - January',
    '2'=>'02 - February',
    '3'=>'03 - March',
    '4'=>'04 - April',
    '5'=>'05 - May',
    '6'=>'06 - June',
    '7'=>'07 - July',
    '8'=>'08 - August',
    '9'=>'09 - September',
    '10'=>'10 - October',
    '11'=>'11 - November',
    '12'=>'12 - December',
]
)


{{Form::select('card_month', array_merge(['' => 'Select Month'], $months),null,['id' => 'exp_month'])}}

当我使用 Inspect Element 查看下拉列表时,我看到了这个

$months 数组中的键与 Inspect Element 中的值不匹配。
这些值从 0 而不是 1 开始。

但是如果我在键前面添加一个 space,那么数字会在 Inspect Element 下正确显示。

' 1'=>'01 - January',
' 2'=>'02 - February',
' 3'=>'03 - March',
' 4'=>'04 - April',
' 5'=>'05 - May',
' 6'=>'06 - June',
' 7'=>'07 - July',
' 8'=>'08 - August',
' 9'=>'09 - September',
' 10'=>'10 - October',
' 11'=>'11 - November',
' 12'=>'12 - December',

为什么会发生这种情况,我该如何解决?

这不是 Laravel 错误,这是 array_merge 函数的行为方式:

Values in the input array with numeric keys will be renumbered with incrementing keys starting from zero in the result array.