以下SSCCE打印:
Array ( [0] => FLAT [1] => A [2] => B [3] => C [4] => D [5] => E [6] => F [7] => G [8] => H [9] => I [10] => J )
我想要的是:
我想要的是在数组的开头插入值为"flat"
的元素,即我希望"flat"
插入索引0
,其余的元素应该向右移动一个位置,以便为数组开头的插入提供自由位置。
所以我尝试使用union运算符。 source
我得到了什么:
但实际发生的是数组的第一个元素 "id"
被新插入的元素覆盖/替换。
问题是为什么会发生这种情况,我该怎么做才能实现我的需求?
$array = array(
0 => "id",
1 => "A",
2 => "B",
3 => "C",
4 => "D",
5 => "E",
6 => "F",
7 => "G",
8 => "H",
9 => "I",
10 => "J"
);
$arrayNew = array("flat") + $array;
print_r($array_new);
答案 0 :(得分:2)
从手册Array Operators:
+运算符返回附加到左侧数组的右侧数组;对于存在于两个数组中的键,将使用左侧数组中的元素,并且将忽略右侧数组中的匹配元素。
尝试array_unshift()
修改数组:
array_unshift($array, array("flat"));
或array_merge()
:
$arrayNew = array_merge(array("flat"), $array);
答案 1 :(得分:1)
使用array_merge()
$array = array(
0 => "id",
1 => "A",
2 => "B",
3 => "C",
4 => "D",
5 => "E",
6 => "F",
7 => "G",
8 => "H",
9 => "I",
10 => "J"
);
$arrayNew = array_merge(array("flat"), $array);
print_r($arrayNew);
数组([0] => flat [1] => id [2] => A [3] => B [4] => C [5] => D [6] => E [7] => F [8] => G [9] => H [10] => I [11] => J)
答案 2 :(得分:0)
使用array_unshift
将元素添加到数组的开头。
$ arr = array([0] => FLAT 1 => A [2] => B [3] => C [4] => D [5] => ; E [6] => F [7] => G [8] => H [9] => I [10] => J);
array_unshift($ arr," flat");