和值有相同的代码,并将其导出到新的文件CSV

问题描述:

我有这样的阵列,这些值:和值有相同的代码,并将其导出到新的文件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__请。 –

您可以简单地遍历$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); 

给你:

$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