1
我在嘗試獲取正確的值時遇到了一些麻煩,但它讓我很難完成它。如何在foreach循環php中使用continue獲取正確的值;
下面我的代碼,使循環槽項目,並找到值是否符合要求和var_dump的結果,但不正確,我也寫下面的結果我需要的輸出。
$requeriment = 250;
$items = array(
array(
'id' => 12,
'price' => 199, // 2%
'quantity' => 1
),
array(
'id' => 13,
'price' => 199, // 2%
'quantity' => 1
),
array(
'id' => 14,
'price' => 199, // 2%
'quantity' => 1
),
array(
'id' => 15,
'price' => 399, // 1%
'quantity' => 1
)
);
$flag = false;
$sumItems = 0;
foreach($items as $item){
$totalItem = $item['price'] * $item['quantity'];
if($totalItem >= $requeriment){
if(!$flag){
$flag = true;
$itemIds[] = array(
'1% Disc' => $item['id']
);
}else if($flag){
$itemIds[] = array(
'2% Disc' => $item['id']
);
}
continue;
}
//If no product with value required lets sum until we get that amount
$sumItems += $item['price'] * $item['quantity'];
if($sumItems >= $requeriment){
$itemIds[] = array(
'1% Disc' => $item['id']
);
continue;
}
$itemIds[] = array(
'2% Disc' => $item['id']
);
}//THE END
var_dump($itemIds);
//the result is:
array(4) {
[0]=>
array(1) {
["2% Disc"]=>
int(12)
}
[1]=>
array(1) {
["1% Disc"]=>
int(13)
}
[2]=>
array(1) {
["1% Disc"]=>
int(14)
}
[3]=>
array(1) {
["1% Disc"]=>
int(15)
}
}
// but what i need is:
array(4) {
[0]=>
array(1) {
["2% Disc"]=>
int(12)
}
[1]=>
array(1) {
["2% Disc"]=>
int(13)
}
[2]=>
array(1) {
["2% Disc"]=>
int(14)
}
[3]=>
array(1) {
["1% Disc"]=>
int(15)
}
}
什麼是你的問題 – peter
如果你跟蹤代碼的結果是預期的。由於'$ sumItems'增加了(單向開關),除非項目本身高於要求,否則總是會得到「1%」 – MetalMichael
最後你會看到代碼給我的結果和結果我需要,我的問題是我如何得到這個結果。 Thx – ndAR