2
我有這個數組。如何使用php減去數組值的數字?
$val = array(1, 0, 2, 1, 1);
我想從$val
陣列減去3.5
的方式,從每一個元素元素不會變爲負值,這樣的:
$val = array(0, 0, 0, 0.5, 1)
我有這個數組。如何使用php減去數組值的數字?
$val = array(1, 0, 2, 1, 1);
我想從$val
陣列減去3.5
的方式,從每一個元素元素不會變爲負值,這樣的:
$val = array(0, 0, 0, 0.5, 1)
迭代陣列項目和循環檢查,如果目標值是偉大的,循環項目,從目標值中減去項目值。如果循環項目大於目標值,則從循環項目中減去目標值。
$val = array(1, 0, 2, 1, 1);
$subtract = 3.5;
foreach ($val as $key => $item){
if ($subtract >= $item){
$subtract -= $item;
$val[$key] = 0;
} else {
$val[$key] -= $subtract;
$subtract = 0;
}
}
看看導致demo
另一個可能的方法:由所述當前迭代的值減小減法值,然後設定電流值爲零或-$subtract
。當$subtract
下降到零以下時打破。
foreach ($val as &$number) {
$subtract -= $number;
$number = ($subtract > 0) ? 0 : -$subtract;
if ($subtract <= 0) break;
}