关于php:将元素插入到数组的中间

Inserting element into the middle of array

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
10
11
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);
}

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


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

数组切片的第二个参数应该是子数组将开始的数组中的偏移量。如果要将数组拆分为两个,则需要第一个子数组从偏移量0开始,大小为$index,第二个子数组从偏移量$index+1开始,大小为sizeof(array) - index。不过,为了重申一点意见,array_splice更适合您的应用。