【问题标题】: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);
}

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

【问题讨论】:

  • $array 作为函数参数传递。否则你什么都切片。 insertAfter($newElement, $key, $array)
  • $array 是属性,$this->array,不好意思我没写,是有一些内容的数组
  • 你能把print_r($array)的结果贴出来吗?

标签: php arrays


【解决方案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 更适合您的应用程序。

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 2018-10-13
      • 2018-02-04
      • 2019-12-05
      • 1970-01-01
      • 2016-12-12
      • 2019-06-25
      • 1970-01-01
      相关资源
      最近更新 更多