2017-02-26 35 views
0

這是我在我的php代碼中使用的數組的簡單示例。原始數組由查詢自動填充。PHP在同一行中的另一個普通項目數組中總結項目

我正在尋找一種簡單的方法來將所有「數字」索引在具有相同「水果」索引的不同行中求和。例如,如果我想計算「橙色」,我會得到「2」+「4」=「6」作爲結果。

$fruit = array("Banana", "Apple", "Banana", "Orange", "Orange"); 
$number = array("5", "3", "7", "2", "4"); 

$i = 0; 

while($i < 5) { 
    $myArray[$i] = array("fruit" => $fruit[$i], "number" => $number[$i]); 
    $i++; 
} 

回答

1
function sum($res, $item){ 
    $key = $item['fruit']; 
    if(!array_key_exists($key, $res)){ 
     $res[$key] = 0; 
    } 
    $res[$key] += $item['number']; 
    return $res; 
} 

print_r(array_reduce($myArray, "sum", array())); 

產生

Array 
(
    [Banana] => 12 
    [Apple] => 3 
    [Orange] => 6 
) 
+0

這就是我一直在尋找的。謝謝。 – Ahmet

+0

您是否首先組合陣列?如果是這樣,請更新您的答案以供將來參考。 –

+0

儘管這種方式的工作方式與我想要的完全一樣,但它會在產生所需結果之前爲每個索引拋出未定義的索引錯誤。 – Ahmet

相關問題