Я бы попросил помощи с foreach и использованием vars.Есть несколько условий в цикле.Если значение из массива равно чему-то, то что-то случилось и так далее.Мне нужно сохранить что-то в переменную, а затем использовать это во второй итерации foreach.Затем я использую массив $ total в интерфейсе.Я хотел бы сохранить порядок - поэтому сначала в $ итоговых значениях должны быть sub_total, затем налоговые, а затем итоговые.
Я пытался также определить $ разность и $ tax перед foreach, но он сбрасывается на каждой итерации.Теперь я сделал это с помощью сеанса, но я не уверен, что это правильно, и я хотел бы сделать это без сеанса.Я надеюсь, вы понимаете.
Ну, у меня есть цены в массиве (общая цена, итоговая цена, налог), и клиент видит округленную общую цену.Если общая цена округляется, мне нужно получить разницу между округленной общей ценой и общей ценой (не округленной) - переменная разница в долларах.Затем мне нужно рассчитать налог из разницы - var $ tax и эту переменную добавить к значению налога (680.2950), которое определено в массиве (Array [1]).Вывод всего кода должен быть сохранен в итоговых значениях массива, где код ключа - это код цены (например, total, tax, sub_total), а ключ 'text' - цена.Таким образом, массивы итогов в случае налога должны выглядеть массивом ([code] => tax [value] => 680.2950 + значение из переменной $ tax).Понимаешь?Не весь код мой.Это открытая тележка.
Не могли бы вы помочь мне, пожалуйста?Спасибо.
ПРИМЕР:
Array ( [0] => Array(
[code] => sub_total
[value] => 3140.5000)
[1] => Array (
[code] => tax
[value] => 680.2950)
[2] => Array (
[code] => total
[value] => 3919.7950)
)
$totals = array();
foreach($array as $key => $value) {
if (!in_array($value['code'], array('sub_total', 'tax', 'total')){
//do something, not important, just showing structure of my code
} else {
if($value['code'] == 'total') {
$text = $value['value'];
if(round($value['value']) > $value['value']) {
$difference = round($value['value']) - $value['value'];
$tax = ($difference*($tax_rate/(100+$tax_rate)));
}
}
if($value['code'] == 'tax') {
$text= $value['value'] + $tax;
echo $tax; //shows nothing
echo $text; //shows only 680.2950 ($value['value'] without $tax)
}
echo $tax; // Shows $tax correctly
}
$totals[] = array(
'code' => $value['code'],
'text' => $text,
); }