[英]How do i add values of a certain key from two arrays into one new array in PHP?
[英]How to sum values from multiple arrays and add to new array with conditions?
感覺像是重復的,但是我遇到了很多類似的問題,不能完全解決問題。
我有以下數組,我想按“ SECTOR”分組,然后對“ MCAP”鍵求和。
Array
(
[0] => Array
(
[TICKER] => ABC
[SECTOR] => 30
[MCAP] => 1000
)
[1] => Array
(
[TICKER] => XYZ
[SECTOR] => 30
[MCAP] => 500
)
[2] => Array
(
[TICKER] => ASD
[SECTOR] => 25
[MCAP] => 750
)
)
我需要實現的是:
(
[30] => Array
(
[MCAP] => 1500
)
[25] => Array
(
[MCAP] => 750
)
)
我已經嘗試過使用foreach循環,而我所設法管理的最好的方法是對所有MCAP值求和。 我無法全力以赴,非常感謝您在挑戰方面的幫助。
編輯:這是我嘗試的:
$sector = array();
foreach($stocks as $row) {
$sum += $row['MCAP'];
$sector[$row['SECTOR']]['MCAP'] = $sum;
}
但是結果是這樣的:
[30] => Array
(
[MCAP] => 1500
)
[25] => Array
(
[MCAP] => 2250
)
嘗試像這樣使用扇區值求和:
$res = array();
foreach($data as $key=> $value){
$res[$value['SECTOR']] += $value['MCAP'];
}
var_dump($res); // this output the expected result you want
遍歷數組,然后檢查結果數組中是否存在當前的SECTOR
鍵。 如果不是,則將其定義為零。 然后將MCAP
的當前值添加到結果數組。
$result = array();
foreach ($array as $key=> $value) {
if (!isset($result[$value['SECTOR']]))
$result[$value['SECTOR']]['MCAP'] = 0;
$result[$value['SECTOR']]['MCAP'] += $value['MCAP'];
}
print_r($result);
您需要創建另一個空數組以保存sum
。 循環時,可以創建每個section
並求和mcap
的值:
$arraySum = array();
foreach($array as $key => $value) {
if (!isset($arraySum[$value['SECTOR']]))
$arraySum[$value['SECTOR']] = $value['MCAP'];
else
$arraySum[$value['SECTOR']] += $value['MCAP'];
}
print_r($arraySum);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.