和值有相同的代码,并将其导出到新的文件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]。
请问您能帮我吗?
答
您可以简单地遍历$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
显示__your code__请。 –