如何将数组值添加到数组的中间?

Posted

技术标签:

【中文标题】如何将数组值添加到数组的中间?【英文标题】:How to add an array value to the middle of an array? 【发布时间】:2011-01-10 02:11:36 【问题描述】:

假设我有这个数组:

$array = array(1,2,'b','c',5,6,7,8,9.10);

稍后在脚本中,我想在“c”之前添加值“d”。我该怎么做?

【问题讨论】:

Insert new item in array on any position in php的可能重复 @MichelAyres 您链接到的问题是在此问题之后发布的。我认为这使他成为我的副本,而不是相反:P 链接的问题比这个@Citizen有更好的答案 【参考方案1】:

公民问题的复杂答案是:

$array = array('Hello', 'world!', 'How', 'are', 'You', 'Buddy?');
$element = '-- inserted --';
if (count($array) == 1)

    return $string;

$middle = ceil(count($array) / 2);
array_splice($array, $middle, 0, $element);

将输出:

Array
(
    [0] => Hello
    [1] => world!
    [2] => How
    [3] => -- inserted --
    [4] => are
    [5] => You
    [6] => Buddy?
)

这就是他想要的。

【讨论】:

【参考方案2】:

或者更自制的方法:循环数组,直到你看到'd'插入'c',然后在下一个中插入'd'。将所有其他条目右移一位

【讨论】:

【参考方案3】:

见array_splice

【讨论】:

【参考方案4】:

如下使用array_splice

array_splice($array, 3, 0, array('d'));

【讨论】:

以上是关于如何将数组值添加到数组的中间?的主要内容,如果未能解决你的问题,请参考以下文章

怎么取数组的中间值

leetcode的题4:给定两个有序数组,求两个数组的中间值。

如何将字符串或数组发送到 laravel 中间件

快速排序

在数组中找到满足条件的中间值

JavaScript算法---快速排序法