将元素插入数组中间[重复]
Posted
技术标签:
【中文标题】将元素插入数组中间[重复]【英文标题】:Inserting element into the middle of array [duplicate] 【发布时间】:2013-02-12 13:01:06 【问题描述】:我想在 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);
但是,它并没有真正做到我想要的......它对数组做了一些奇怪的事情。你能帮忙吗?
【问题讨论】:
***.com/questions/3797239/… 将$array
作为函数参数传递。否则你什么都切片。 insertAfter($newElement, $key, $array)
$array 是属性,$this->array,不好意思我没写,是有一些内容的数组
你能把print_r($array)
的结果贴出来吗?
【参考方案1】:
$array = array_slice($array, 0, $index)
+ array($newElement)
+ array_slice($array, $index, count($array) - 1);
【讨论】:
【参考方案2】:array_slice 的第二个参数应该是数组中子数组开始的偏移量。如果您尝试将数组一分为二,您希望第一个子数组从偏移量0
开始,大小为$index
,第二个子数组从偏移量$index+1
开始,大小为$index+1
大小sizeof(array) - index
。不过,重申一下,array_splice
更适合您的应用程序。
【讨论】:
以上是关于将元素插入数组中间[重复]的主要内容,如果未能解决你的问题,请参考以下文章