总和值与相同的代码,并导出到新的文件csv


Sum value with same code and export it into new file 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
    )
}
}

我已经试过了:

如何对数组中相同元素id的值求和

但是对于value[1]不起作用。

你能帮我一下吗?

您可以简单地遍历$array数组变量。

我们的想法是将$array的内容存储在$result中,键$result作为no 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);
输出:

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

你可以在这里修改和测试上面的代码:http://phpio.net/s/129