关于php:如何将数组值添加到数组的中间?


How to add an array value to the middle of an array?

假设我有这个数组:

1
$array = array(1,2,'b','c',5,6,7,8,9.10);

在脚本的后面,我想将值"d"添加到"c"之前。我该怎么做?


使用array_splice如下:

1
array_splice($array, 3, 0, array('d'));

参见阵列拼接


关于公民问题的复杂答案是:

1
2
3
4
5
6
7
8
$array = array('Hello', 'world!', 'How', 'are', 'You', 'Buddy?');
$element = '-- inserted --';
if (count($array) == 1)
{
    return $string;
}
$middle = ceil(count($array) / 2);
array_splice($array, $middle, 0, $element);

将输出:

1
2
3
4
5
6
7
8
9
10
Array
(
    [0] => Hello
    [1] => world!
    [2] => How
    [3] => -- inserted --
    [4] => are
    [5] => You
    [6] => Buddy?
)

所以这就是他想要的。


或者更自制的方法:循环数组,直到在下一个数组中看到"d"插入"c",然后再看到"d"。将所有其他条目右移一个