我知道如何通过以下方式将其插入到最后:
$arr[] = $item;
Run Code Online (Sandbox Code Playgroud)
但是如何将它插入到开头呢?
Tra*_*v L 235
使用array_unshift($ array,$ item);
$arr = array('item2', 'item3', 'item4');
array_unshift($arr , 'item1');
print_r($arr);
Run Code Online (Sandbox Code Playgroud)
会给你
Array
(
[0] => item1
[1] => item2
[2] => item3
[3] => item4
)
Run Code Online (Sandbox Code Playgroud)
tih*_*ihe 92
如果是关联数组或编号数组,您不想更改数组键:
$firstItem = array('foo' => 'bar');
$arr = $firstItem + $arr;
Run Code Online (Sandbox Code Playgroud)
array_merge 不起作用,因为它总是重新索引数组.
nit*_*ito 23
从PHP7.4开始,您可以使用扩展运算符,与 JavaScript 非常相似
$arr = [$item, ...$arr];
Run Code Online (Sandbox Code Playgroud)
https://wiki.php.net/rfc/spread_operator_for_array
再举几个例子:
// Add an item before
$arr = [$item, ...$arr];
// Add an item after
$arr = [...$arr, $item];
// Add a few more
$arr = [$item1, $item2, ...$arr, $item3];
// Multiple arrays and and items
$arr = [$item1, ...$arr1, $item2, ...$arr2, $item3];
Run Code Online (Sandbox Code Playgroud)
破坏示例:
$car = ['brand' => 'Audi', 'model' => 'A8'];
$engine = ['cylinder' => 6, 'displacement' => '3000cc'];
$merged = [...$car, ...$engine];
var_dump($merged);
Run Code Online (Sandbox Code Playgroud)
将导致:
[错误]无法使用字符串键解压数组
pic*_*oru 10
对于关联数组,您可以只使用合并。
$arr = array('item2', 'item3', 'item4');
$arr = array_merge(array('item1'), $arr)
Run Code Online (Sandbox Code Playgroud)
使用字符串/自定义键在关联数组的开头插入一个项目
<?php
$array = ['keyOne'=>'valueOne', 'keyTwo'=>'valueTwo'];
$array = array_reverse($array);
$array['newKey'] = 'newValue';
$array = array_reverse($array);
Run Code Online (Sandbox Code Playgroud)
结果
[
'newKey' => 'newValue',
'keyOne' => 'valueOne',
'keyTwo' => 'valueTwo'
]
Run Code Online (Sandbox Code Playgroud)
小智 7
有两种解决方案:
$new = ['RLG' => array(1,2,3)];
$array = ['s' => array(2,3), 'l' => [], 'o' => [], 'e' => []];
$arrayWithNewAddedItem = array_merge($new, $array);
Run Code Online (Sandbox Code Playgroud)
array_unshift(array, value1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122775 次 |
| 最近记录: |