Как указано в этом комментарии пользователя в PHP документах, оператор объединения создает объединение на основе ключей, а не на основе значений.
Поэтому, если вы сделаете что-то подобное :
$arr = ['2010', '2020', '2030'];
$years = ['Any'] + $arr;
var_dump($years);
// output
array(3) {
[0]=>
string(3) "Any"
[1]=>
string(4) "2020"
[2]=>
string(4) "2030"
}
Ключи значений в $arr
равны 0, 1, 2 - и единственный ключ в $years
равен 0. Это приводит к перезаписи ключа.
Однако вы можете использовать array_unshift :
$arr = ['2010', '2020', '2030'];
array_unshift($arr, 'Any');
var_dump($arr);
// output
array(4) {
[0]=>
string(3) "Any"
[1]=>
string(4) "2010"
[2]=>
string(4) "2020"
[3]=>
string(4) "2030"
}
или array_merge :
$arr = ['2010', '2020', '2030'];
$arr = array_merge(['Any'], $arr);
var_dump($arr);
Обратите внимание, что последний работает, только если ваши значения действительно строки, поскольку array_merge()
имеет свое странное поведение при объединении числовых значений.