我找不到解决这个问题的办法,我所有的尝试都失败了,所以我需要你的帮助。在PHP中,当你知道另一个值时获得一个数组值
我必须定义不同的球队在足球锦标赛中相互对抗。我知道锦标赛的4组比赛以及每天应该参加哪些比赛,但是由于这些信息,我无法展示比赛项目。
我有2个数组:
-the比赛节目(由每队各组中的排名定义,每天有2场在各4组):
$tournament = array(
"day1" => array(1=> array("team1", "team2"), 2=> array("team3", "team4")),
"day2" => array(1=> array("team3", "team1"), 2=> array("team4", "team2")),
"day3" => array(1=> array("team1", "team4"), 2=> array("team2", "team3")),
"day4" => array(1=> array("team2", "team1"), 2=> array("team4", "team3")),
"day5" => array(1=> array("team1", "team3"), 2=> array("team2", "team4")),
"day6" => array(1=> array("team4", "team1"), 2=> array("team3", "team2"))
);
- 团体的详细信息:
$users_group = array (
[0] => Array ([team] => Superteam1 [rank] => 1 [group] => A)
[1] => Array ([team] => Superteam2 [rank] => 2 [group] => A)
[2] => Array ([team] => Superteam3 [rank] => 3 [group] => A)
[3] => Array ([team] => Superteam4 [rank] => 4 [group] => A)
[4] => Array ([team] => Superteam5 [rank] => 1 [group] => B)
[5] => Array ([team] => Superteam6 [rank] => 2 [group] => B)
[6] => Array ([team] => Superteam7 [rank] => 3 [group] => B)
[7] => Array ([team] => Superteam8 [rank] => 4 [group] => B)
[8] => Array ([team] => Superteam9 [rank] => 1 [group] => C)
[9] => Array ([team] => Superteam10 [rank] => 2 [group] => C)
[10] => Array ([team] => Superteam11 [rank] => 3 [group] => C)
[11] => Array ([team] => Superteam12 [rank] => 4 [group] => C)
[12] => Array ([team] => Superteam13 [rank] => 1 [group] => D)
[13] => Array ([team] => Superteam14 [rank] => 2 [group] => D)
[14] => Array ([team] => Superteam15 [rank] => 3 [group] => D)
[15] => Array ([team] => Superteam16 [rank] => 4 [group] => D)
)
我希望在比赛的每一天都显示两场比赛将进行的比赛。不过我试过不行,我只能拿到第一场比赛的第一个队(NB第一while循环用于从我的数据库获取比赛的6天):
$i=1;
while($i<7){
echo '<div>Day '.$i.'</div>';
$max = count($users_group);
for($l = 0; $l < $max; $l++){
if($users_group[$l]['rang']==substr($tournament["day".$i][1][0],-1)){
echo $users_group[$l]['team'];
}
if($users_group[$l]['rang']==substr($tournament["day".$i][1][1],-1)){
echo ' VS '.$users_group[$l]['team'] . '<br />';
}
if($users_group[$l]['rang']==substr($tournament["day".$i][2][0],-1)){
echo $users_group[$l]['team'];
}
if($users_group[$l]['rang']==substr($tournament["day".$i][2][1],-1)){
echo ' VS '.$users_group[$l]['team'] . '<br />';
}
}
$i++;
}
我想显示是这样的:
Day 1
Superteam1 VS Superteam2
Superteam3 VS Superteam4
Superteam5 VS Superteam6
Superteam7 VS Superteam8
Superteam9 VS Superteam10
Superteam11 VS Superteam12
Superteam13 VS Superteam14
Superteam15 VS Superteam16
Day 2
Superteam3 VS Superteam1
Superteam4 VS SUperteam2
etc
.
.
.
我试图让一个功能,避免只得到每一次$users_group[$l]['team']
的第一个值,但我不能使它工作。
非常感谢您的帮助!
你建立这些数据结构? '$ tournament'中的数组值增加了不必要的文本,从而使生活变得困难。只有拥有可以互相比赛的球队数量会更容易。您发布的答案与提供的数据不相似 - 输入数组中没有第8天。 – 2014-10-01 10:30:55
正如我所说的,第4天和第8天来自一个while循环,它提供了我的db表的信息。这不是重点。另外,我没有包含所有的代码,但是我在数组中获得的所有数据都可用于显示更多信息。无论如何感谢您的回答 – Fanzouze 2014-10-01 11:02:16
如果您提供预期的输出 - 如果您提供的输出不能与输入相关,那么这非常有用,这只是令人困惑。您的'while'循环或'$ tournament'都没有关于第8天的任何信息,因此将其作为预期的输出结果是误导性的。如果您可以提供更多代码,因为您的问题可以通过不同的数据结构轻松解决,但是如果您坚持使用已有的数据结构,将会非常有帮助,因此必须设计一种解决方法。 – 2014-10-01 11:07:47