昨天我头疼。
基本上,我有一个带有字符串键(包含数值,但仍然是带引号的字符串)的一些数据的关联数组<select>
作为选项放入一个框中。我想为选择框的选项添加一个占位符值。
我尝试使用array_merge:
$placeholder = "Month";
$source = array
(
'01' => '01 - January',
'02' => '02 - February',
'03' => '03 - March',
'04' => '04 - April',
'05' => '05 - May',
'06' => '06 - June',
'07' => '07 - July',
'08' => '08 - August',
'09' => '09 - September',
'10' => '10 - October',
'11' => '11 - November',
'12' => '12 - December'
);
$source = array_merge(array('' => $placeholder), $source);
我看到了奇怪的结果——结果$source
数组类似于以下内容:
(
'' => 'Month',
'01' => '01 - January',
'02' => '02 - February',
'03' => '03 - March',
'04' => '04 - April',
'05' => '05 - May',
'06' => '06 - June',
'07' => '07 - July',
'08' => '08 - August',
'09' => '09 - September',
0 => '10 - October',
1 => '11 - November',
2 => '12 - December'
);
请注意,出于某种原因,它开始使用从 10 月到 12 月的自动递增整数键。
我可以用这个替换 array_merge 调用:
$source = array('' => $placeholder) + $source;
而且阵列没有被重新加密,一切都很好,但我不明白这个array_merge
案子的幕后发生了什么。
谁能解释我使用时我的数组键发生了什么array_merge
?谢谢!