假设我有这个数组:
$array = (1,2,4,5);
现在,我该如何在上述数组中正确的位置 索引/键值 方式添加缺失的 3 呢?
尝试:
array_splice($array, 2 /*offset*/, 0 /*length*/, 3 /*value*/);
array_merge(array_slice($array,0,2),array(3),array_slice($array,2))
$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)
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);
array_splice()
。 - Harmen