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)