我有以下数组:
Array
(
[aFlashParties] => Array
(
[2015-07-07] => 20
[2015-07-08] => 48
[2015-07-09] => 42
[2015-07-10] => 94
[2015-07-11] => 0
[2015-07-12] => 0
[2015-07-13] => 6
[2015-07-14] => 0
),
[aRapidesParties] => Array
(
[2015-07-07] => 62
[2015-07-08] => 6
[2015-07-09] => 3
[2015-07-10] => 17
[2015-07-11] => 0
[2015-07-12] => 0
[2015-07-13] => 241
[2015-07-14] => 0
)
)
我想把它变成像这样的数组:
Array
(
[0] => Array
(
[date] => 2015-07-07
[flash] => 20
[rapide] => 62
[total] => 82
),
[1] => Array
(
[date] => 2015-07-08
[flash] => 48
[rapide] => 6
[total] => 54
),
.....
)
因此,我们的想法是创建一个数组,其中包含日期,flash(来自[afflashparties]的数字),rapid -来自[aRapidesParties]的数字)和total (flash和rapid的总和)。你能帮我一下吗?
你只需要解析你的数组
$ret = [];
$keys = array_keys($a['aFlashParties']);
foreach ($keys as $key)
{
$ret[] = [
'date' => $key,
'flash' => $a['aFlashParties'][$key],
'rapide' => $a['aRapidesParties'][$key],
'total' => $a['aFlashParties'][$key] + $a['aRapidesParties'][$key]
];
}
如果不是所有数组中都有日期,则可能需要检查某些键是否存在
使用array_map()
考虑用输入数组的名字来改变$array
的实例,
$required = array_map(function($v1, $v2, $keys){
return array('date'=>$keys, 'flash'=>$v1, 'rapide'=>$v2, 'total'=>$v1+$v2);
}, $array['aFlashParties'], $array['aRapidesParties'], array_keys($array['aFlashParties']));