La construction d'un “tableau croisé” ou “pivot” de la table à partir d'un tableau en php

J'ai un tableau d'objets définis de la même façon la ci-dessous:

$scores = array();

//Bob round 1
$s = new RoundScore();
$s->Round_Name = 'Round 1';
$s->Player_Name = 'Bob';
$s->Score = 10;
$scores[0] = $s;

//Bob round 2
$s = new RoundScore();
$s->Round_Name = 'Round 2';
$s->Player_Name = 'Bob';
$s->Score = 7;
$scores[1] = $s;

//Jack round 1
$s = new RoundScore();
$s->Round_Name = 'Round 1';
$s->Player_Name = 'Jack';
$s->Score = 6;
$scores[2] = $s;

//Jack round 2
$s = new RoundScore();
$s->Round_Name = 'Round 2';
$s->Player_Name = 'Jack';
$s->Score = 12;
$scores[3] = $s;

Si j'en boucle et faire un dump de la $scores objet dans une table, il ressemblera à quelque chose comme ceci:

Round_Name Joueur Score 
---------------------------- 
Ronde 1 Bob 10 
Ronde 2 Bob 7 
Ronde 1 Jack 6 
Ronde 2 Jack 12 

Ce que je veux, cependant, est quelque chose comme ceci:

Joueur De La Ronde 1 Ronde 2 Total 
------------------------------- 
Bob 10 7 17 
Jack 6 12 18 

Je ne vais pas savoir à l'avance combien de tours ou de joueurs, il y a et c'est juste de dire que je ne peux pas changer la façon dont les objets sont construits.

Quel est le moyen le plus efficace de faire cela en php?

Je pense que vous avez une faute de frappe. Pour Bob ronde 2: "$tours[1] = $s;" au lieu de: "$scores[1] = $s;"
Merci, vous avez raison - je me suis fixé maintenant 🙂

OriginalL'auteur Damovisa | 2009-04-03