2
我有此数组:累积阵列
$a = array(1, 2, 3, 4, 5, 7, 8, 10, 12);
是否有将其转换为一个函数:
$b = array(1, 1, 1, 1, 2, 1, 2, 2);
所以basicaly:
$b = array ($a[1]-$a[0], $a[2]-$a[1], $a[3]-$a[2], ... ,$a[n]-$a[n-1]);
这里是我有这样的代码远:
$a = $c = array(1, 2, 3, 4, 5, 7, 8, 10, 12);
array_shift($c);
$d = array();
foreach ($a as $key => $value){
$d[$key] = $c[$key]-$value;
}
array_pop($d);
你应该插入'$阵列= array_values($阵列);'重新索引阵列,避免由于不一致数组键的任何错误(例如,当一个元素被删除) – karka91
让我解释一下:如果一个数组''array = [0 => 1,1 => 2,3 => 3];'被送入你的函数,它将失败,因为不存在索引' 2'。另外 - 计数变量应该得到'$ count - ;',因为它保存的值大于数组中最大的索引 – karka91
@ karka91我接受;我已经更新了我的答案,在'for'循环中包含了全部支持的重新索引。谢谢你的提示! – newfurniturey