2016-01-21 87 views
0

我具有以下陣列如果某些值相同,如何求和數組的值?

Array (
    [0] => 1995,17500 
    [1] => 2052,17500 
    [2] => 2052,17500 
    [3] => 2236,30000 
    [4] => 2235,15000 
    [5] => 2235,40000 
); 

我已分解用逗號的值,。

foreach($array as $key=>$value) { 

     $newar = explode(',', $value); 
} 

因此,我有類似的第一個值,即$ newar [「0」]。例如2235和2052.我想有第二個值的總和,例如$ newar [「1」]。

如何用PHP實現以下結果?

Array (
    [0] => 1995, 17500 
    [1] => 2052, 35000 
    [2] => 2036, 30000 
    [3] => 2235, 55000 
) 

回答

1

您可以創建一個新的陣列密鑰/索引並使用array_key_exists來檢查密鑰是否已經存在。如果這樣求和,則不創建密鑰。這不是你想要的確切結果,但它很整潔。

$newar = []; //New Array 

foreach($array as $value) { 
    $explArr = explode(',', $value); 

    if(array_key_exists($explArr[0], $newar)){ //Check if the key already exists 
     $newar[$explArr[0]] += $explArr[1]; //Sum value to existing key 
    } else { 
     $newar[$explArr[0]] = $explArr[1]; //Create key 
    } 
} 

你的結果數組看起來就像這樣:

Array (
    [1995] => 17500 
    [2052] => 35000 
    [2036] => 30000 
    [2235] => 55000 
) 
+0

[你就能更好地運用'isset($尼瓦爾[$ explArr [0])',而不是使用另一個PHP函數'array_key_exists($ explArr [0],$ newar)'](https://3v4l.org/TRLqW) –

+0

@Uchiha因爲?微優化? – Daan

相關問題