假设我有这个数组:
$array = (1,2,4,5);
现在如何在上面的数组中添加缺少3的正确位置索引/键 -wise?
答案 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)
最后但并非最不重要:
答案 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);