PHP从数组中添加项

PHP从数组中添加项,php,Php,假设我有一个数组: $array = (1,2,4,5); 现在,我如何将上面数组中缺少的3添加到正确的位置索引/键-wise?试试: array_splice($array, 2 /*offset*/, 0 /*length*/, 3 /*value*/); 请注意,这会将输入数组的键从0重新排序为n-1 (编辑:在这种情况下不使用返回值。) 用法: array_insert($a,2,3); 也许我忽略了你问题的复杂性,但下面的内容不正是你想要的吗 $array[] = 3; sort

假设我有一个数组:

$array = (1,2,4,5);
现在,我如何将上面数组中缺少的3添加到正确的位置索引/键-wise?

试试:

array_splice($array, 2 /*offset*/, 0 /*length*/, 3 /*value*/);
请注意,这会将输入数组的键从0重新排序为n-1

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

用法:

array_insert($a,2,3);

也许我忽略了你问题的复杂性,但下面的内容不正是你想要的吗

$array[] = 3;
sort($array);
最后但并非最不重要的是:

  • 在数组末尾追加新内容
  • 在最终需要阵列时对其进行排序:
  • 这样使用:

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

    是的,我已经更正了我的答案。它返回已提取的元素,在本例中不包含这些元素。它通过引用修改原始输入数组。konfence,-1变为+1;)实际上,您已经重建了
    array\u splice()
    ,这就是PHP中有这么多数组函数的原因:编写自己的数组函数通常比阅读手册中内置函数的精妙之处要快:)哇,我们每天都在学习新的东西。谢谢你的指针@Harmen:)+1
    $array[] = 3;
    sort($array);
    
    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)