2012-08-13 76 views
1

我有一個完全黑屏。我有一個有n個元素的陣列,其中有一個隊的結果,例如:循環遍歷數組並總結具有相同編號的值

array(teamid,wins,losses,draws,goals);

array(1, 2, 3, 4, 5); 
array(2, 2, 3, 4, 5); 
array(1, 1, 2, 2, 6); 
array(2, 2, 3, 4, 5); 

我想遍歷這個數組,並總結第二個數組中的每個team-id的值。如:

$results = getResults(); 
$final = array(); 

foreach ($results as $result) { 
foreach ($results as $res) { 
if ($res['team_id'] == $result['team_id']) { 
... 
} 
} 
} 

foreach ($final as $finalresult) { 
...print result 
} 

最後,我想要一個數組與例如在這個例子中,2個值與2個不同的團隊ID,每個值總結,但我現在有一個停電。

有沒有人有解決方案?

謝謝。

+0

您的數據示例與代碼不匹配;這使得很難回答這個問題 – 2012-08-13 20:07:19

回答

1

你的代碼是混亂的,但我想它會給出提示:

$results = getResults(); 
$final = array(); 

foreach ($results as $result) { 
    if(!isset($final[$result['team_id']])) { 
     $final[$result['team_id']] = $result['wins']; 
    } else { 
     $final[$result['team_id']] += $result['wins']; 
    } 
} 

foreach($final as $key=>$value) { 
    echo $key . ' ' . $value . '</br>'; 
} 
2

您正在運行嵌套的循環,這意味着你實際上是在總結N^2分的記錄。假設數組的鍵都陣列之間的相同,那麼你只需要一個循環:

$arr1 = array(...); 
$arr2 = array(...); 
$sum = 0; 

foreach($arr1 as $key => $value) { 
    $sum += $arr1[$key] + $arr2[$key]; 
} 

如果密鑰是不一樣的,T母雞你必須找出匹配起來兩個陣列的成員。