How to insert an item at the beginning of an array in PHP?
我知道如何插入到结尾:
但是如何把它插入开头呢?
- 此处找到$arr[-1] = $item;:stackoverflow.com/a/15252657/669677
- @2斯大拉维斯塔,那不管用:print_r($arr)=>Array ( [0] => a, [1] => b, [-1] => c )。
- @returnthis.lau_uu这种情况下,您应该使用for loop(从-1开始)来使其正常工作:for ($i = -1; $i < count($a)-1; $i++),如参考链接所示,但很容易忘记,因此我不再喜欢该解决方案。
使用数组"unshift($array,$item)";
会给你
1 2 3 4 5 6 7
| Array
(
[0] => item1
[1] => item2
[2] => item3
[3] => item4
) |
- 如果你需要文字键而不是数字键呢?
- @埃文,array_unshift的文档中说,下面的All numerical array keys will be modified to start counting from zero while literal keys won't be touched.是
对于不想更改数组键的关联数组或编号数组:
1 2 3
| $firstItem = array('foo' => 'bar');
$arr = $firstItem + $arr; |
array_merge不起作用,因为它总是重新索引数组。
- 这确实是最好的答案!
- 非常感谢你
- 也为我工作。谢谢
- 注意!"+运算符返回附加到左侧数组的右侧数组;对于两个数组中都存在的键,将使用左侧数组中的元素,并忽略右侧数组中的匹配元素。"--请参见:stackoverflow.com/a/2140094/3411766
使用函数array_unshift。
使用array_unshift()在数组中插入第一个元素。
用户数组_Shift()删除数组的第一个元素。
这将有帮助
http://www.w3schools.com/php/func_array_unshift.asp
- 不要引用w3schools,请访问w3fuls.com
- ^ OBE:"W3Schools在很大程度上解决了这些问题,并解决了大多数签名开发商的问题。"~w3fuls.com
使用字符串/自定义索引键在关联数组的开头插入项
1 2 3 4 5 6 7 8 9
| <?php
$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];
$array = array_reverse($array);
$array['newKey'] = 'newValue';
$array = array_reverse($array); |
结果
1 2 3 4 5
| [
'newKey' => 'newValue',
'keyOne' => 'valueOne',
'keyTwo' => 'valueTwo'
] |
或者您可以使用临时数组,然后删除实际数组,如果您想在循环中更改它:
1 2 3 4 5
| $array = array(0 => 'a', 1 => 'b', 2 => 'c');
$temp_array = $array[1];
unset($array[1]);
array_unshift($array , $temp_array); |
输出将是:
1
| array(0 => 'b', 1 => 'a', 2 => 'c') |
在循环中执行此操作时,应在将项附加到数组后清理$temp_array。
使用自定义索引:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $arr=array("a"=>"one","b"=>"two");
$arr=array("c"=>"three","d"=>"four").$arr;
print_r($arr);
-------------------
output :
----------------
Array
(
[c ]=["three"]
[d ]=["four"]
[a ]=["two"]
[b ]=["one"]
) |