2017-05-10 1 views
2

Ich versuche eine Gesamtpunktzahl anzuzeigen. Ich bekomme die einzelnen Punkte unten. Jeder Benutzer hat zwei "Sätze", in denen sie eine Punktzahl haben.Wie kann ich zwei Werte in einem Array hinzufügen, die zu demselben Benutzer gehören?

foreach ($user['results'] as $result) { 
    error_log($result['user_id']); 
    error_log($result['score']); 
} 

Die oben gibt diese in den Protokollen:

10938 // user_id 
16.00 // score 
10938 // user_id 
12.00 // score 
... 

Was ich versuche ist 16.00 + 12.00 fügen Sie ein Gesamtscore von 28 zu bekommen. Danke für Anregungen!

Antwort

5

Sie array_sum verwenden können und array_chunk

$arr = array_chunk($user['results'], 2); 
$sums = array_map(function($v){return array_sum(array_column($v, 'score'));}, $arr); 
+0

Gründe für Downvote wird sehr geschätzt. –

+1

Es gibt nur wenige. Um die Abzeichen zu bekommen, werden sie nach dem Zufallsprinzip weitergeleitet. Ohne zu sehen, ob es richtig oder falsch ist. –

+1

Danke! Für jeden anderen, hier ist, wie ich das Ergebnis in meine Tabelle ausgeben: '$ markup. = ''. $ summen [0]. ''; ' – Damon

1

diesen einfachen Versuchen .. Hier sind wir adding all scores nach user_id zuerst und dann auf Protokolle wir schreiben.

Try this code snippet here

<?php 

ini_set('display_errors', 1); 
//-----------------------------sample array 
$user['results']=array(
    array("user_id"=>"10938","score"=>"16.00"), 
    array("user_id"=>"10931","score"=>"13.00"), 
    array("user_id"=>"10938","score"=>"12.00"), 
    array("user_id"=>"10931","score"=>"12.00"), 
    array("user_id"=>"10935","score"=>"13.00"), 
); 

//-------------------gathering logs data. 
$logsArray=array(); 
foreach($user['results'] as $result) 
{ 
    if(!isset($logsArray[$result["user_id"]])) 
    { 
     $logsArray[$result["user_id"]]=$result; 
    } 
    else 
    { 
     $logsArray[$result["user_id"]]["score"]+=$result["score"]; 
    } 
} 
print_r($logsArray); 
//--------------------- writing to logs 
foreach($logsArray as $result) 
{ 
    error_log($result['user_id']); 
    error_log($result['score']); 
} 
Verwandte Themen