Возможный дубликат:
php-группа по SUM с использованием многомерного массива
Я работаю над созданием корзины для оптовой компании. И я также создам счет-фактуру. Это же логика.
Во-первых, я умножаю пакет (пакет) * paket adeti (количество пакетов) * fiyatı (цена) И я написал его в конце списка. Теперь я должен вычислить vat. Основная проблема заключается в том, что мы не знаем коэффициентов ватт именно раньше.
Может быть, существует 3 разных коэффициента заполнения. (это зависит от продуктов, которые выбирает клиент) Может быть одним.
Я сделал массив чанов
$vats[] = array($row['vat'], $row['wholesaleprice'] - $wholesaleprice);
Результат подобен
Array ( [0] => Array ( [0] => 18 [1] => 1,07 ) [1] => Array ( [0] => 8 [1] => 0,44 ) [2] => Array ( [0] => 8 [1] => 0,67 ) [3] => Array ( [0] => 18 [1] => 0,55 ) [4] => Array ( [0] => 18 [1] => 0,19 ) [5] => Array ( [0] => 8 [1] => 0,48 ) [6] => Array ( [0] => 18 [1] => 2,59 ) [7] => Array ( [0] => 8 [1] => 0,15 ) [8] => Array ( [0] => 18 [1] => 12,97 ) )
Я должен суммировать ват-группу по коэффициентам …
И я хочу показать, как
НДС (% 18) 136,26 TL НДС (% 8) 16,90 TL НДС (% 1) 9,28 TL
Как я могу это сделать в ярлыке. Я проверил функции массива. Но я не мог найти ничего полезного.
Корзина: http://img.ruphp.com/arrays/DDsCq.png
Попробуйте что-то вроде этого:
<?php $data = Array ( Array ( 0 => '18', 1 => '1,07' ), Array ( 0 => '8', 1 => '0,44' ), Array ( 0 => '8', 1 => '0,67' ), Array ( 0 => '18', 1 => '0,55' ), Array ( 0 => '18', 1 => '0,19' ), Array ( 0 => '8', 1 => '0,48' ), Array ( 0 => '18', 1 => '2,59' ), Array ( 0 => '8', 1 => '0,15' ), Array ( 0 => '18', 1 => '12,97' ) ); // predefine array $data_summ = array(); foreach ( $data as $value ) { $data_summ[ $value[0] ] = 0; } foreach ( $data as $list ) { $number = str_replace( ",", ".", $list[1] ) * 1; $data_summ[ $list[0] ] += (float)$number; } ?>
Вывод $data_summ
:
Array ( [8] => 1.74 [18] => 17.37 )
Если я правильно вас пойму.
<?php function multiplyArray($array) { $result = array(); foreach ($array as $value) { $result[] = array_product(array_map('floatval', str_replace(',', '.', $value))); } return $result; } $array = array( 0 => array(0 => '18', 1 => '1,07'), 1 => array(0 => '8', 1 => '0,44'), 2 => array(0 => '8', 1 => '0,67'), 3 => array(0 => '18', 1 => '0,55'), 4 => array(0 => '18', 1 => '0,19'), 5 => array(0 => '8', 1 => '0,48'), 6 => array(0 => '18', 1 => '2,59'), 7 => array(0 => '8', 1 => '0,15'), 7 => array(0 => '18', 1 => '12,97'), ); // Outputs var_dump($array); var_dump(multiplyArray($array)); var_dump(array_sum(multiplyArray($array)));
Быть осторожен! В прошлый раз, когда я касался НДС, правила были очень строгими в отношении расчета НДС по каждой позиции в счете-фактуре, а затем суммирования общего НДС.
Таможня и акцизы Ее Величества не принимают итоговые позиции, а затем рассчитывают НДС на общую сумму. Для этого есть две причины: