在指定位置插入数组

时间:2009-11-19 15:09:47

标签: php

数组:

A-B-C-D-E-F

J是C的儿子。 更新数组所以:

A-B-C-J-D-E-F

如何在数组中插入C后的J?

我还将数组映射到一个循环中(用于显示的注释数组)。这种方法需要很长时间才能完成吗?

5 个答案:

答案 0 :(得分:71)

您可以使用$ length设置为0的array_splice()。

http://de.php.net/manual/en/function.array-splice.php

示例:

$arr_alphabet = array('a', 'b', 'd');
array_splice($arr_alphabet, 2, 0, 'c');
// $arr_alphabet is now: array('a', 'b', 'c', 'd');

答案 1 :(得分:16)

使用拼接功能解决此问题。

答案 2 :(得分:7)

对于那些遇到问题的人......我发现@Pekka的解决方案最终返回一个NULL数组,因为array_splice返回由提取的元素组成的数组(http://de.php.net/manual/en/function.array-splice.php)。

如下更准确:

$arr_alphabet = array('a', 'b', 'd');
array_splice($arr_alphabet, 2, 0, 'c');
print_r($arr_alphabet);

返回:

Array ( [0] => a [1] => b [2] => c [3] => d ) 

但是感谢@Pekka让我获得95%的胜利!

答案 3 :(得分:6)

答案 4 :(得分:0)

我编写了一个函数,可以在指定的索引处插入数组:

function array_insert(&$arr, $index, $val)
{
    if (is_array($val))
        array_splice($arr, $index, 0, [$index => $val]);
    else
        array_splice($arr, $index, 0, $val);
}

它也适用于多维数组,但仅适用于数字键。