我有这个数组,有这些值:
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