2014-09-24 97 views
0

我有這樣通過去除相同鍵值簡化陣列

Array 
(
    [0] => Array 
     (
      [vendor_id] => 2 
      [vendor_total_order] => 80 
     ) 

    [1] => Array 
     (
      [vendor_id] => 2 
      [vendor_total_order] => 100 
     ) 

    [2] => Array 
     (
      [vendor_id] => 1 
      [vendor_total_order] => 150 
     ) 
    [3] => Array 
     (
      [vendor_id] => 3 
      [vendor_total_order] => 80 
     ) 

    [4] => Array 
     (
      [vendor_id] => 5 
      [vendor_total_order] => 150 
     ) 

    [5] => Array 
     (
      [vendor_id] => 1 
      [vendor_total_order] => 110 
     ) 

)

我想以這樣的方式,如果「VENDOR_ID」是相同的爲存在有積累/求和的兩個值,以簡化該陣列的陣列值應該被分配給'vendor_total_order'到'vendor_id'(基本上我們將刪除具有與重複值的總值相同的vendor_id的值)。

所以當我提供上述數組作爲輸入輸出應該類似於如下

Array 
(
    [0] => Array 
     (
      [vendor_id] => 2 
      [vendor_total_order] => 180 
     ) 

    [1] => Array 
     (
      [vendor_id] => 1 
      [vendor_total_order] => 260 
     ) 
    [2] => Array 
     (
      [vendor_id] => 3 
      [vendor_total_order] => 80 
     ) 

    [3] => Array 
     (
      [vendor_id] => 5 
      [vendor_total_order] => 150 
     ) 

)

我怎樣才能做到這一點?

+0

http://stackoverflow.com/questions/4535002/remove-duplicate-keys-from-multidimensional-array看到此 – StaticVariable 2014-09-24 05:35:38

+0

@static變量,我看到的鏈接。你能幫我理解這個解決方案將如何幫助我解決我的問題 – 2014-09-24 05:44:14

回答

1

您只需要使用foreach對它們進行分組。例如:

$total = array(); 
foreach ($array as $key => $value) { 
    if(!isset($total[$value['vendor_id']])) { 
     $total[$value['vendor_id']] = array('vendor_id' => $value['vendor_id'], 'vendor_total_order' => 0); 
    } 
    $total[$value['vendor_id']]['vendor_total_order'] += $value['vendor_total_order']; 
} 

$total = array_values($total); // simple reindex 
echo '<pre>'; 
print_r($total); 

Sample Output

+1

很多非常感謝你Mr.Ghost,它像真棒一樣工作。 – 2014-09-24 09:40:21

+0

@BashaShaik很高興這有幫助 – Ghost 2014-09-24 10:21:42

0

最好的方法是編寫自定義腳本,執行以下操作:

  1. 創建一個空的新的「結果」陣列當前陣列上,並對每個項目
  2. 迭代:
  3. 如果項目不存在於結果中,插入它,否則將total_value值更新爲當前值與新項目的總和。
  4. 保存結果數組
+0

看起來這應該適用於我的問題,讓我試試。 – 2014-09-24 05:45:26