簡體   English   中英

如何對多個數組的值求和並在有條件的情況下添加到新數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM