1

我想在页面上展示一些特定的团队信息(时间表/结果/排名)。每个团队都有自己的页面,每个页面都包含一个 team_id 变量。

根据这个 $team_id 我想通过过滤包含所有团队信息的数组来设置其他一些变量的值。

例如:

Array ( 
[0] => Array ( [CompName] => Foo [ClassName] => 2e [Class] => 12 [Type] => R [Teamid] => 88107 [Team] => 1 ) 
[1] => Array ( [CompName] => Foo1 [ClassName] => 4e [Class] => 14 [Type] => R [Teamid] => 88114 [Team] => 1 ) 
[2] => Array ( [CompName] => Foo2 [ClassName] => 123 [Class] => 35 [Type] => B [Teamid] => 12348 [Team] => 3 ) 

)

然后我想用 [ClassName] 的值设置变量 $teamClass,其中 [Team] == $team_id 和 [Type] === 'R'。

我可以为此使用 PHP 的 array_filter() 还是有其他更好的方法?

4

1 回答 1

0

假设您的团队 ID 是唯一的,我建议您首先使用团队的 ID 号作为主数组的索引。然后对于团队页面,您以某种方式确定团队 id 值(如来自 GET 或 POST)。然后,每个团队的其余代码都是相同的。这样做的好处是您可以为所有团队页面使用一个 php 文件。这是一个基本的设置。需要添加一些检查和 html 格式等。

$teamID = $_GET['teamid'];

echo "Team ID: ".$teamID."\n";

$team = $team_array[$teamID]; // To make the remaining code more concise

echo "Team Name: ".$team['team_name']."\n";
echo "Class Name: ".$team['ClassName']."\n";
echo "Type: ".$team['Type']."\n";

等等。

另一种可能性是使用 for/foreach 循环的组合在数组中搜索特定团队 ID。这将为您提供特定团队信息所在的主数组的索引。

$teamID = $_GET['teamid'];
$team = array();
for ($t = 0; $t < count($main_array); $t++) {
  if ($main_array[$t]['TeamID'] == $teamID) {
    $team = $main_array[$t];
    break;
  }
}

if (count($team) > 0) {
  // Do your team display stuff here
}
于 2013-09-02T18:51:37.970 回答