我有一个像这样的数组:
array(
'a'=>array(
'a'=>3,
'f'=>5,
'sdf'=>0),
't'=>array(
'a'=>1,
'f'=>2,
'sdf'=>5),
'pps'=>array(
'a'=>1,
'f'=>2,
'sdf'=>3)
);
注意每个顶级数组的子数组是如何相同的。如果我想,组合子数组的最简单方法是什么,以便我留下一维数组,如:
array(
'a'=>5,
'f'=>9,
'sdf'=>8
);
答案 0 :(得分:2)
这个怎么样?
$result = array();
foreach ($array as $key => $value) {
foreach ($value as $k => $a) {
if ( ! isset($result[$k])) $result[$k] = 0;
$result[$k] += $a;
}
}
答案 1 :(得分:0)
两个嵌套的foreach和实际创建一个新数组怎么样?
$input = array(
'a'=>array(
'a'=>3,
'f'=>5,
'sdf'=>0),
't'=>array(
'a'=>1,
'f'=>2,
'sdf'=>5),
'pps'=>array(
'a'=>1,
'f'=>2,
'sdf'=>3)
);
$output = array();
foreach ($input as $v) {
foreach ($v as $k2 => $v2) {
if (!isset ($output[$k2])
$output[$k2] = 0;
$output[$k2] += $v2;
}
}
/* Now $output = array(
'a'=>5,
'f'=>9,
'sdf'=>8
); */
答案 2 :(得分:0)
array_walk_recursive($array, function($val, $key) {
global $result;
$result[$key] += $val;
});