Php多维数组 - 每列具有相同值的表

时间:2015-03-21 16:09:57

标签: php multidimensional-array html-table usort

我无法找到解决此问题的方法。我可以用新手if else函数为每个特定数据解决这个问题,但这很简单。

所以这是我的数组示例:

//I get data from mysqli

while ($recordsnumber = mysqli_fetch_assoc($result1)) {
    $records = array(
    'id' => $recordsnumber['Id'],
    'mapid' => $recordsnumber['ChallengeId'],
    'players' => $recordsnumber['PlayerId'],
    'time' => $recordsnumber['Score'],
    );
    $recordstable[] = $records;
}

所以我的数据变得像:

id[1] mapid[2] players[1] time[2310]
id[2] mapid[1] players[4] time[1920]
id[3] mapid[2] players[2] time[2340]
id[4] mapid[3] players[1] time[2180]
id[5] mapid[1] players[2] time[1540]
id[6] mapid[3] players[4] time[2210]

id是表中的主键,可能有10张地图,但其中一些可能还没有播放。可能有50名球员,但其中一些可能还没有比赛。

首先,我想为每个mapid创建一个表,然后我想列出玩过这些地图的玩家。然后我想用最好的时间排序那些球员(越少越好)。所以它应该是这样的:

Map1
Rank-Player-Time
1.   Player2 1540
2.   Player4 1920

Map2
Rank-Player-Time
1.   Player1 2310
2.   Player2 2340

我从另一张桌子获取玩家名字和地图名称。这没有问题。我可以用wordwrap显示23:10的时间。没问题。

我认为:

$i=1;
foreach ($recordstable[mapid] as $table){
if ($table = $i) {
//echo $recordstable[] in lots of <tr><td> ^^
}
i++;
}

但它无法获取列出的$recordstable行。然后我知道我应该使用usort来排序最好的时间。

所以我被困住了。

0 个答案:

没有答案