这是我的多维数组:
Juan Arraya - Max LePivert 1 vs. 1 Marco Grangeiro - Jeff Morneau
Juan Arraya - Max LePivert 1 vs. 0 Marco Grangeiro - George Wilkinson
我希望输出为:
MatchUps_Id
所以基本上,我想使用Team1
分别显示不同的匹配,并打印团队Team2
和Winners_Id
的名称。基于field1
我想添加一个计数器来跟踪每场比赛每队的胜利。
请注意,这些结果来自用户输入,每当我请求field2
和$query2 = "SELECT HeadToHead.H2HNo H2H_Id, H2HTeam1Id Team1_Id, H2HTeam1 Team1, H2HTeam2Id Team2_Id, H2HTeam2 Team2, WinnersId Winners_Id, MatchUps.MatchUpsNo MatchUps_Id
FROM HeadToHead
JOIN MatchUps ON HeadToHead.MatchUpsNo=MatchUps.MatchUpsNo
WHERE ((H2HTeam1 LIKE '%$field1%' OR H2HTeam2 LIKE '%$field1%') AND (H2HTeam1 LIKE '%$field2%' OR H2HTeam2 LIKE '%$field2%'))";
$result2 = mysql_query($query2);
$num2 = mysql_num_rows($result2);
$arr2 = array();
if($num2 > 0) {
while($row2 = mysql_fetch_assoc($result2)) {
$arr2[] = $row2;
}
}
传递的用户输入时,多维数组就会不同。
这是我目前在代码中所拥有的:
class base (
$someBoolean=false,
)
{
exec { 'Do something':
command => '/usr/bin/someStuff',
timeout => (someBoolean) ? 100000000 : 300
}
}
我从上面的代码中得到了所需的结果。
我想我已就这件事做了很多研究,但我想要完成的事情似乎与那里的不同。
非常感谢任何帮助。
答案 0 :(得分:1)
你可以按照'MatchUps_Id'
将比赛分组在一起:
foreach ($arr2 as $match) {
// create some short ids to make the next part more readable
$id = $match['MatchUps_Id'];
$t1 = $match['Team1_Id'];
$t2= $match['Team2_Id'];
if (!isset($matchups[$id][$t1]['name'])) {
// initialize if this matchup has not yet been created
$matchups[$id][$t1]['name'] = $match['Team1'];
$matchups[$id][$t2]['name'] = $match['Team2'];
$matchups[$id][$t1]['wins'] = (int) ($match['Winners_Id'] == $match['Team1_Id']);
$matchups[$id][$t2]['wins'] = (int) ($match['Winners_Id'] == $match['Team2_Id']);
} else {
// increment wins if the matchup already exists
$matchups[$id][$t1]['wins'] += $match['Winners_Id'] == $match['Team1_Id'];
$matchups[$id][$t2]['wins'] += $match['Winners_Id'] == $match['Team2_Id'];
}
}
使用$t1
和$t2
作为二级密钥,您可以增加各个团队的获胜次数,而无需知道哪个是哪个。表达式$match['Winners_Id'] == $match['Team1_Id']
返回一个布尔值,当与0
一起使用时,它将隐式转换为整数1
或+=
,但必须使用(int)
显式转换初始化时。
在对数组进行分组并计算胜利后,您可以输出如下结果:
foreach ($matchups as $matchup) {
list($a, $b) = array_values($matchup);
echo "$a[name] $a[wins] vs. $b[wins] $b[name]<br>";
}