我有兩個數組,都是關聯的;雙foreach意外的結果
ArrayUneaten (lemon=> 7, banana=>6, apple=>10)//the units of UNeaten fruit
ArrayOrdered (lemon =>10, strawberry =>10, Kiwi=>0, Apple=>20, Banana=>6) // the units of ordered fruit
我想創建一個第三排所有的水果選擇,吃水果的% (相對於水果有序)(如果在相同的順序ArrayOrdered數字是罰款)。
(如果訂購值= 0,%食用= 0%NB出於其它原因)
(NB2,請注意所希望的草莓那%爲100,沒有草莓吃剩的,10有序的,因此10都被吃掉)
所以所需的陣列
ArrayEatenPercentage (70, 100, 0, 50, 0)
我的編碼嘗試
$CompletedPercentagesArray = array();
foreach($ArrayOrdered as $fruitOrdered => $unitsOrdered) {
if ($unitsOrdered == 0){
//if it's zero it's never been selected
$completedPercentage = 0;
}
foreach($ArrayUneaten as $fruitUneaten => $unitsUneaten) {
if ($fruitUneaten == $fruitOrdered){
// ($totalCardsChosen = $timesSelected*25; - please ignore)
$percentageUneaten = 100*($fruitUneaten/$unitsOrdered);
$percentageEaten = 100 - $percentageUneaten;
$completedPercentage = round ($percentageEaten, 1);
}
else {//if this is true then it's been selected and been finished
$completedPercentage = 100;
}
}
array_push($completedPercentagesArray, $completedPercentage); //this adds the variable to the array
}
print_r($completedPercentagesArray);
電流輸出是意外的。
只有ArrayUneaten的最後一個值被正確處理。
其他值返回100%。
ArrayEatenPercentage (100, 100, 100, 50, 100)
您應該*顯示*當前輸出以及預期輸出。 – Gabe
在代碼中使用$ fruitsUneaten,在示例中使用ArrayUneaten。這可能是因爲你在代碼中的某個地方使用了錯誤的名字。 – Qqwy
都糾正了謝謝 – Gamemorize