だから私はこの連想配列を持っています(kintでダンプを行います)
d
Conference
キー " " を 3 回繰り返す代わりに。私はそれを一度だけ持って、次のようなものにするために3つの値を1つに合計したい:
会議 : 4534
そして、繰り返されている他のすべてのキーについても同じことが..
それを行うことができるネイティブ関数はありますか?
だから私はこの連想配列を持っています(kintでダンプを行います)
d
Conference
キー " " を 3 回繰り返す代わりに。私はそれを一度だけ持って、次のようなものにするために3つの値を1つに合計したい:
会議 : 4534
そして、繰り返されている他のすべてのキーについても同じことが..
それを行うことができるネイティブ関数はありますか?
あなたが試すことができます
$data = array(
0 => array(
'event' => 'Conference',
'budget' => 3700,
),
1 => array(
'event' => 'Conference',
'budget' => 500,
),
2 => array(
'event' => 'Showroom',
'budget' => 1000,
),
3 => array(
'event' => 'Mission Chez client',
'budget' => 2000,
),
4 => array(
'event' => 'Séminaire',
'budget' => 700,
),
5 => array(
'event' => 'Livraison',
'budget' => 4000,
),
6 => array(
'event' => 'Conference',
'budget' => 334,
),
);
$sum = array_reduce($data, function ($a, $b) {
isset($a[$b['event']]) ? $a[$b['event']]['budget'] += $b['budget'] : $a[$b['event']] = $b;
return $a;
});
print_r(array_values($sum));
出力
Array
(
[0] => Array
(
[event] => Conference
[budget] => 4534
)
[1] => Array
(
[event] => Showroom
[budget] => 1000
)
[2] => Array
(
[event] => Mission Chez client
[budget] => 2000
)
[3] => Array
(
[event] => Séminaire
[budget] => 700
)
[4] => Array
(
[event] => Livraison
[budget] => 4000
)
)
簡単な提案:
$results = array();
foreach ($budgetByEventTemp as $value)
{
if( ! isset($results[$value['event']]) )
{
$results[$value['event']] = 0;
}
$results[$value['event']] += $value['budget'];
}
var_dump($results);
コメントに応じて更新
それらをもう一度実行できます。
foreach($results as $key => $value)
{
$structured_results[] = array('event' => $key, 'budget' => $value);
}
var_dump($structured_results);
$sumArray = array();
foreach ($myArray as $k=>$subArray) {
foreach ($subArray as $id=>$value) {
$sumArray[$id]+=$value;
}
}
print_r($sumArray);