2

可能重复:
使用多维数组按 SUM 分组的 php

我正在为一家批发公司创建购物车。我稍后也会创建发票。是一样的逻辑。

首先,我将paket(包装)* paket adeti(包装数量)* fiyatı(价格)相乘并将其写在列表的末尾。现在我必须计算增值税。主要问题是我们以前不知道增值税率。

可能存在 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 里拉 增值税 (%8) 16,90 里拉 增值税 (%1) 9,28 里拉

我怎么能在快捷方式中做到这一点。我检查了数组函数。但我找不到任何有用的东西。

购物车:http: //i.stack.imgur.com/DDsCq.png

4

3 回答 3

2

尝试这样的事情:

<?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
)

如果我理解正确的话。

于 2012-07-24T14:49:30.043 回答
0
<?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)));
于 2012-07-24T14:56:36.277 回答
0

当心!上次我处理增值税时,规则非常严格地计算发票中每个行项目的增值税,然后将总增值税相加。

Her Majesties Customs and Excise 不接受合计行项目,然后计算总计的增值税。有两个原因:-

  • 简单的贪婪——大多数舍入错误将有利于消费税。
  • 实用性——通常单行项目会从装运中丢失、被拒绝或退回——如果首先计算每个发票行的增值税,则更容易计算出要贷记的增值税。
于 2012-07-25T06:35:02.073 回答