2014-08-14 2 views
0

Я получаю данные из моей базы данных. У меня две таблицы, которые являются реляционными таблицами. Я использую sql JOIN для получения необходимой информации. Теперь у меня есть несколько массивов с данными в них. Но теперь я хотел бы объединить массивы с одним ID (team_id), а затем повторить его на странице. Или я имею в виду массивы объединений с тем же идентификатором (team_id), что я могу сортировать их правильно для каждой команды.Объединить массивы с тем же идентификатором

Вот мой массив, который поступает из моей базы данных. существует бесконечное количество имен команд (массивов).

Array 
(
    [points_1] => 2 
    [0] => 2 
    [points_2] => 10 
    [1] => 10 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 7 
    [0] => 7 
    [points_2] => 10 
    [1] => 10 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 10 
    [0] => 10 
    [points_2] => 10 
    [1] => 10 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 4 
    [0] => 4 
    [points_2] => 15 
    [1] => 15 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 14 
    [0] => 14 
    [points_2] => 14 
    [1] => 14 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 22 
    [0] => 22 
    [points_2] => 22 
    [1] => 22 
    [name] => Team 1 
    [2] => Team 1 
    [team_id] => 1 
    [3] => 1 
) 
Array 
(
    [points_1] => 1 
    [0] => 1 
    [points_2] => 10 
    [1] => 10 
    [name] => Team 2 
    [2] => Team 2 
    [team_id] => 3 
    [3] => 3 
) 
Array 
(
    [points_1] => 10 
    [0] => 10 
    [points_2] => 10 
    [1] => 10 
    [name] => Team 3 
    [2] => Team 3 
    [team_id] => 6 
    [3] => 6 
) 

Вот мой Foreach/JOIN код:

echo "<pre>"; 
    foreach ($db->query("SELECT points_1, points_2, name, team_id FROM points INNER JOIN teams ON teams.id=points.team_id ORDER BY team_id ASC") as $result) { 
     print_r($result); 

    } 

Я хотел бы пройти через все массивы и эхо их аккуратно и сортируются, как на картинке.

enter image description here

ответ

1

если вы выводите, как этот массив (вы можете установить ключи вам нужно)

$arr = array(
array('name' => 'Team 1','points_1' => 2,'points_2' => 10), 
array('name' => 'Team 1','points_1' => 7,'points_2' => 10), 
array('name' => 'Team 2','points_1' => 1,'points_2' => 12), 
array('name' => 'Team 3','points_1' => 4,'points_2' => 32), 
array('name' => 'Team 2','points_1' => 1,'points_2' => 16), 
); 

попробуйте:

$arrayTotals = array(); 


foreach ($arr as $result) { 
     //print_r($result); 

     $arrayTotals[$result['name']][] = array('points_1'=>$result['points_1'],'points_2'=>$result['points_2']); 

} 

var_dump($arrayTotals); 

foreach($arrayTotals as $team=>$values){ 
    echo '<div style="float:left;">'.$team; 
    $sum1=0; 
    $sum2=0; 
    foreach($values as $v){ 
     echo '<br />'.$v['points_1'].'/'.$v['points_2']; 
     $sum1 +=$v['points_1']; 
     $sum2 +=$v['points_2']; 
    } 
    echo '<br />Total:'.$sum1.'/'.$sum2; 
    echo '</div>'; 
} 
+0

я получаю массив 0: ' 'array (0) { }' ' – Pullapooh

+0

да теперь его работа! – Pullapooh

+0

ok, хорошо сделано ..... – miglio

Смежные вопросы