将元素插入数组的中间

时间:2013-02-26 21:44:26

标签: php arrays

我想在PHP中的非关联数组的特定索引之后插入新元素。这就是我到目前为止所做的:

public function insertAfter($newElement, $key)
{
    // Get index of given element
    $index = array_search($key, array_keys($array));

    $temp  = array_slice($array, $index + 1, null, TRUE);
    $temp2 = array_slice($array, sizeof($array) - $index, null, TRUE);

    // Insert new element into the array
    $array = array_merge($temp, array($newElement), $temp2);
}

然而,它并没有真正做我想要的......它对数组做了一些奇怪的事情。你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

$array = array_slice($array, 0, $index) 
       + array($newElement)
       + array_slice($array, $index, count($array) - 1);

答案 1 :(得分:0)

array_slice的第二个参数应该是子数组将启动的数组中的偏移量。如果您尝试将数组拆分为两个,则需要第一个子数组从偏移量0开始并且大小为$index,并且第二个子数组从偏移量{{开始1}}并且大小为$index+1。不过要重申一下评论,sizeof(array) - index更适合您的应用。