Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
346 views
in Technique[技术] by (71.8m points)

php - Sum of array for same values

I have this array:

Array (
  [0] => Array (
    [TaxeName] => TPS
    [TaxeAmount] => 7
    [Price] => 14
  )
  [1] => Array (
    [TaxeName] => TVQ
    [TaxeAmount] => 9.975
    [Price] => 10
  )
  [2] => Array (
    [TaxeName] => TVQ
    [TaxeAmount] => 9.975
    [Price] => 18
  )
)

How I can get another array:
- Grouping the TaxeName and the TaxeAmount and
- Making the sum of the amount Price ?

Like this:

Array (
  [0] => Array (
    [TaxeName] => TPS
    [TaxeAmount] => 7
    [Price] => 14
  )
  [1] => Array (
    [TaxeName] => TVQ
    [TaxeAmount] => 9.975
    [Price] => 28
  )
)
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Something like this maybe:

$final = array();
foreach ($arr as $subarr)
{
    if (!isset($final[$subarr['TaxeName']]))
    {
        $final[$subarr['TaxeName']] = array('Price' => 0);
    }
    $final[$subarr['TaxeName']]['TaxeName'] = $subarr['TaxeAmount'];
    $final[$subarr['TaxeName']]['TaxeName'] = $subarr['TaxeName'];
    $final[$subarr['TaxeName']]['Price'] = $final[$subarr['TaxeName']]['Price'] + $subarr['Price'];
}

The idea is to make a new array with the values that you need and initializing it with the price set to 0 so you can increment it in the foreach


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...