如何使用PHP在数组中的两个键之间插入一个值?

How do I insert a value in between two keys in an array using php?

我有一个具有3个值的数组:

1
$b = array('A','B','C');

这是原始数组的外观:

Array ( [0] => A [1] => B [2] => C )

我想在第一个和第二个键之间的位置插入一个特定的值(例如字母"x"),然后将后面的所有值向下移动一个。因此实际上,它将成为第二个值,第二个值将成为第三个值,第三个值将成为第四个值。

下面是数组的外观:

Array ( [0] => A [1] => X [2] => B [3] => C )

如何使用PHP在数组中的两个键之间插入值?


array_splice()是你的朋友:

1
2
3
$arr = array('A','B','C');
array_splice($arr, 1, 0, array('X'));
// $arr is now array('A','X','B','C')

此函数用于操作数组,通常用于截断数组。但是,如果您"告诉它"删除零项($length == 0),您可以在指定的索引处插入一个或多个项。

请注意,必须在数组中传递要插入的值。


有一种方法不使用array_splice。不过,它更简单,更脏。

这是您的代码:

1
2
3
4
$arr = array('A', 'B', 'C');
$arr['1.5'] = 'X'; // '1.5' should be a string

ksort($arr);

输出:

1
2
3
4
5
6
7
Array
(
    [0] => A
    [1] => B
    [1.5] => X
    [2] => C
)