У меня возникли проблемы с попыткой получить правильные значения, но это дает мне немного боли, чтобы сделать это.Как получить правильные значения в php foreach, используя 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