只是想用array_unshift在我的数组前面添加一个新参数,但是:如果我像往常一样,它有一个数字索引。如何拒绝索引,例如类似的东西...
<?php
$queue = array("a", "B");
array_unshift($queue, "front" => "hello" ); //Not working, this is my question ;)
?>
然后数组看起来像
Array {
front => hello
0 => a
1 => B
}
答案 0 :(得分:11)
array_push
,array_pop
,array_shift
,array_unshift
专为数字数组设计。
您可以使用某些人已经提及的array_merge
解决方案之一,或者您可以将+
运算符用于数组:
$queue = array('front' => 'Hello') + $queue;
注意:当使用array_merge
时,第二个数组中具有相同键的项将覆盖第一个数组中的项,因此如果$queue
中已存在“前”,则不会被覆盖,但只被带到前面。另一方面,如果您使用+
,新值将出现在结果中并位于前面。
答案 1 :(得分:4)
看起来array_unshift无法做你想做的事。试试这个:
$queue = array('a', 'B');
$queue = array_merge(array('front' => 'hello'), $queue);
这会得到你想要的结果。
Array ( [front] => hello [0] => a [1] => b )
答案 2 :(得分:2)
使用array_merge
:
$new_queue = array_merge(array("front"=>"hello"), $queue);
您必须使用array_merge
而不是array_unshift
的原因是因为后者仅适用于数字索引数组。