PHP添加到数组的开头,无需重新排序
我试着寻找我的问题的答案,但我找不到一个不重新排序数字索引的答案 有没有一种方法可以将字符串添加到数组的开头,而无需对键(数字键)重新排序,也无需使用循环 谢谢 编辑: 我会尽力解释这个场景。(我正在使用CodeIgniter) 我的应用程序中使用了一个数组。该数组还用于创建下拉列表,并以我所拥有的形式验证这些下拉列表值。我想做的是在数组的开头插入一个空白值,这样我的下拉列表就有一个默认选择的空白选项 所以从这个 1=>你好PHP添加到数组的开头,无需重新排序,php,arrays,indexing,add,Php,Arrays,Indexing,Add,我试着寻找我的问题的答案,但我找不到一个不重新排序数字索引的答案 有没有一种方法可以将字符串添加到数组的开头,而无需对键(数字键)重新排序,也无需使用循环 谢谢 编辑: 我会尽力解释这个场景。(我正在使用CodeIgniter) 我的应用程序中使用了一个数组。该数组还用于创建下拉列表,并以我所拥有的形式验证这些下拉列表值。我想做的是在数组的开头插入一个空白值,这样我的下拉列表就有一个默认选择的空白选项 所以从这个 1=>你好 2=>世界 到 ''=>'' 1=>你好 2=>World由于您不想更
2=>世界 到 ''=>''
1=>你好
2=>World由于您不想更改数值索引,我假设
数组\u unshift
将不起作用
因此,如果您知道索引,您可以这样做:
$x = array(1 => 1, 2 => 2, 3 => 3);
$y = array(1101 => 123);
var_dump( $y + $x );
/* Output:
array(4) {
[1101]=>
int(123)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
*/
请注意,键现在确实位于数组前面,因此foreach
可以正常工作
对编辑的答复:
我不知道你在说什么。任何输入/输出示例?新元素应该有什么索引?为什么需要此条件(不重新排列键)?如果仍然通过键访问元素,则顺序无关紧要。如果你对它们进行迭代,那么索引就无关紧要了。那你为什么需要它呢?也许有一个更好的策略适合你的情况。@BoltClock@Felix Kling@yoda-我在我最初的帖子中试着解释一下-谢谢这个方法的问题是如果你有冲突的键,它们会被覆盖。
$x = array(1 => "Hello", 2 => "Welt");
$y = array("" => "");
var_dump($y + $x);
/*
array(3) {
[""]=>
string(0) ""
[1]=>
string(5) "Hello"
[2]=>
string(4) "Welt"
}
*/