PHP从数组中添加项

时间:2010-11-11 18:36:08

标签: php

假设我有这个数组:

$array = (1,2,4,5);

现在如何在上面的数组中添加缺少3的正确位置索引/键 -wise?

6 个答案:

答案 0 :(得分:9)

尝试:

array_splice($array, 2 /*offset*/, 0 /*length*/, 3 /*value*/);

请注意,这会将输入数组的键从0重新排序为n-1。

(编辑:在这种情况下不使用返回值。)

答案 1 :(得分:6)

array_merge(array_slice($array,0,2),array(3),array_slice($array,2))

答案 2 :(得分:4)

也许我错过了你问题的复杂性,但是下面没有给你你想要的东西吗?

$array[] = 3;
sort($array);

答案 3 :(得分:2)

最后但并非最不重要:

  1. 在数组末尾添加新内容
  2. 在您最终需要时对数组进行排序:asort()

答案 4 :(得分:2)

function insertMissingIntoArray($values = array(), $valueIncrement = 1) {
    $lastValue = 0;
    foreach ($values as $key=>$val) {
        if ($key != 0) {
            if ($val != $lastValue + $valueIncrement) {
                array_splice($values, $key, 0, $val);
            }
            $lastValue = $val;
        }
    }
    return $values;
}

像这样使用:

$values = array(1,2,4,5,7,9);
$fixedValues = insertMissingIntoArray($values, 1);
// $fixedValues now is (1,2,3,4,5,6,7,8,9)

答案 5 :(得分:1)

function array_insert($array,$pos,$val)
{
    $array2 = array_splice($array,$pos);
    $array[] = $val;
    $array = array_merge($array,$array2);

    return $array;
}

<强>用法:

array_insert($a,2,3);