簡體   English   中英

如何對多維數組值進行分組並獲取每組的總和?

[英]How to group multidimension array values and get the sum of each group?

如何動態對數組值進行分組並計算每個組的總和? 這是我當前的數組:

Array ( [0] => Array ( [source] => web [count] => 1 ) 
        [1] => Array ( [source] => web [count] => 1 ) 
        [2] => Array ( [source] => catalog [count] => 1 ) 
        [3] => Array ( [source] => magazine [count] => 1 ) 
        [4] => Array ( [source] => newspaper [count] => 1 ) 
        [5] => Array ( [source] => web [count] => 1 ) 
        [6] => Array ( [source] => newspaper [count] => 1 ) 
        [7] => Array ( [source] => web [count] => 1
)

這就是我要實現的目標:

Array ( [0] => Array ( [source] => web [count] => 4 ) 
        [1] => Array ( [source] => catalog [count] => 1 ) 
        [2] => Array ( [source] => magazine [count] => 1 ) 
        [3] => Array ( [source] => newspaper [count] => 2 ) 
)

我將這樣進行:

<pre><?php

$arr = array ( array ( 'source' => 'web', 'count' => 1 ), 
               array ( 'source' => 'web', 'count' => 1 ), 
               array ( 'source' => 'catalog', 'count' => 1 ), 
               array ( 'source' => 'magazine', 'count' => 1 ), 
               array ( 'source' => 'newspaper', 'count' => 1 ), 
               array ( 'source' => 'web', 'count' => 1 ), 
               array ( 'source' => 'newspaper', 'count' => 1 ), 
               array ( 'source' => 'web', 'count' => 1)
      );

$temp = array();
foreach ($arr as $v) {
    $temp[$v['source']] += $v['count'];
}

$result = array();
foreach ($temp as $k => $v) {
    $result[] = array( 'source' => $k, 'count' => $v );
}
unset($temp);

print_r($result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM