首页 > 解决方案 > PHP数组对每个元素都有相同的索引

问题描述

我正在开发一个程序,该程序可以打印团队中每个人的素质。

我有 3 张桌子: Teams 桌子:

团队ID
1
2

TeamPlayers 表:

玩家ID 团队
100 1
269 1
357 2

该程序的工作方式如下: HTML 页面中有一个文本框,用户在其中输入团队的 ID,程序输出成员。问题是每个玩家都存储在一个数组中。并且都具有相同的索引:

$fetchPlayersSQL = "SELECT Player_ID
            FROM TeamPlayers
            WHERE Team = $TeamID;";
$fetchPlayers = ibase_query($dbConnection, $fetchPlayersSQL);
while ($row2 = ibase_fetch_object($fetchPlayers)) {
    $fetchPlayersArray = get_object_vars($row2);
    print_r($fetchPlayersArray);
}

请记住,$TeamID 是用户在 HTML 文本框中引入的值。

现在,这个程序输出这个:

Array ( [Player_ID] => 2157 ) 

Array ( [Player_ID] => 734 ) 

Array ( [Player_ID] => 2160 ) 

Array ( [Player_ID] => 3744 ) 

Array ( [Player_ID] => 2166 )

(记住,2157、734、2160、3744和2166是其他玩家,有很多,但我只列出了几个)

问题是我需要每个玩家在数组中都有自己的索引,因为我必须打印他们的素质

我真的找不到问题出在哪里。也许我使用了不正确的方法来选择,因为团队中有更多的球员。

第三桌只是每个玩家的素质

玩家ID 高度 重量 发色
100 187 80 黑色的
357 167 67 灰色的
269 182 95 棕色的

预期的输出是这样的:

用户在 HTML 文本框中输入 1,Team 1 的玩家是 100 和 269,所以他们应该看到:

Array ( [0] => 2157 )

Array ( [1] => 734  )

echo $row2->Player_ID;只打印他们的 ID,我们在 Team 1 中有玩家 100 和 269,这会打印 100269

标签: phparraysfirebird

解决方案


它可能不是最优雅的解决方案,但您始终可以自己循环构建该数组:

$a = array();
while ($row2 = ibase_fetch_object($fetchPlayers)) {
    $a[] = $row2->Player_ID;
}
print_r($a);

看看这是否适合你,我目前无法编码。


推荐阅读