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