2016-10-22 44 views
0

我有這樣的陣列,這些值:和值有相同的代碼,並將其導出到新的文件CSV

Array 
(
[0] => Array 
    (
     [0] => 001 
     [1] => NAME1 
     [2] => 14 

    ) 

[1] => Array 
    (
     [0] => 002 
     [1] => NAME2 
     [2] => 2 

    ) 

[2] => Array 
    (
     [0] => 001 
     [1] => NAME1 
     [2] => 12 
} 
} 

我想以CSV格式,但所有值[2]與相同數量的總和導出此[0]:

Array 
(
[0] => Array 
    (
     [0] => 001 
     [1] => NAME1 
     [2] => 26 

    ) 

[1] => Array 
    (
     [0] => 002 
     [1] => NAME2 
     [2] => 2 

    ) 
} 
} 

我已經試過這樣:

How to sum values of the array of the same element id

,但它不工作爲價值[1]。

請問您能幫我嗎?

+0

顯示__your code__請。 –

回答

0

您可以簡單地遍歷$array數組變量。

的想法是到$array內容存儲在$result與$關鍵結果作爲第001,002 ...

我們檢查,如果鑰匙$result已經存在。如果沒有,那麼我們需要添加$array的內容。如果存在,那麼我們將增加對應於[2]的值。

$result = array(); 
foreach ($array as $arr) { 
    if (!isset($result[$arr[0]])) { 
     $result[$arr[0]] = $arr; /* If key 001, 002... doesn't exist then store $arr content*/ 
    } else { 
     $result[$arr[0]][2] += $arr[2]; /* If key 001, 002... exists then add the value corresponding to [2] and keep the other fields as it is */ 
    } 
} 

$result = array_values($result); 
0

給你:

$array = array(
    array('001', 'NAME1', 14), 
    array('002', 'NAME2', 2), 
    array('001', 'NAME1', 12), 
); 

$result = array(); 
foreach($array as $k => $v) { 
    $id = $v[0]; 
    $result[$id]['name'] = $v[1]; 
    $result[$id]['value'][] = $v[2]; 
} 
$new = array(); 
foreach($result as $key => $value) { 
    $new[] = array($key, $value['name'], array_sum($value['value'])); 
} 
echo '<pre>'; 
print_r($new); 

OUTPUT:

Array 
(
    [0] => Array 
     (
      [0] => 001 
      [1] => NAME1 
      [2] => 26 
     ) 

    [1] => Array 
     (
      [0] => 002 
      [1] => NAME2 
      [2] => 2 
     ) 

) 

您可以修改和測試在這裏上面的代碼: http://phpio.net/s/129

相關問題