首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们的分数大于对手的分数,则显示获胜;如果我们的分数低于对手的分数,则显示失败

如果我们的分数大于对手的分数,则显示获胜;如果我们的分数低于对手的分数,则显示失败
EN

Stack Overflow用户
提问于 2011-05-13 01:19:40
回答 2查看 175关注 0票数 1

我使用PHP输出斯坦福田径比分的XML提要,在这个例子中是男子篮球。其中两个属性是两支球队的得分,'hs‘是主场得分,' vs’是客队得分(例如,俄勒冈州立大学vs斯坦福大学的XML属性是: hs="67“vs="69")。'vn‘和’vn‘是本地名称和访问者名称(例如,'Stanford’或'Oregon State')。其他'hc‘和'vc’是本市和客市,并且包含城市名称的前4个字母(例如,Stanford将是'stan‘,'Oregon State’将是'oreg')。注意:因为Cat只有三个字母长,所以Cat is 'cat‘的hc和vc也是三个字母。

我的问题是,如果斯坦福分数大于对手分数,是否可以显示"Win“,或者如果斯坦福分数小于对手分数,是否可以显示"Loss”?例如,俄勒冈州立大学击败了斯坦福大学,那么我如何显示"at Oregon State - Loss"?

下面是我的pageXML和代码:

代码语言:javascript
复制
<?php
$xml = simplexml_load_file('http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml');

// Reverse chronological order
$xmlArray = array();
foreach ($xml as $event_date) $xmlArray[] = $event_date;
$xmlArray = array_reverse($xmlArray);

foreach ($xmlArray as $event_date)
{
    // Only output if complete
    if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
    {
    // Only show opponents' name
    $name = ($event_date->event['vc'] == 'stan') ? $event_date->event['hn'] : $event_date->event['vn'];
    // Output "vs" if home game or "at" if away game
    $preposition = ($event_date->event['hc'] == 'stan') ? 'vs' : 'at';
    echo '<li>';
        echo '<h3>', $preposition, ' ', $name, '</h3>';
        echo '<p><strong>', $event_date->event['vn'], ' ', $event_date->event['vs'], ' - ', $event_date->event['hn'], ' ', $event_date->event['hs'], '</strong></p>';
        echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>';
    echo '</li>';
    }
}   
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-13 01:46:17

代码语言:javascript
复制
$home = ($event_date->event['hc'] == 'stan');
echo '<h3>', $preposition, ' ', $name, ' - ', ((int)$event_date->event['hs'] == (int)$event_date->event['vs'] ? "Tie" : (((int)$event_date->event['hs'] > (int)$event_date->event['vs']) ? ($home? 'Win' : 'Loss') : ($home ? 'Loss' : 'Win'))), '</h3>';

把这些放到foreach循环中,我还添加了一个“领带”的东西。

通过定义$home变量,您可以替换以下行:

代码语言:javascript
复制
 // Only show opponents' name
 $name = ($event_date->event['vc'] == 'stan') ? $event_date->event['hn'] : $event_date->event['vn'];
// Output "vs" if home game or "at" if away game
$preposition = ($event_date->event['hc'] == 'stan') ? 'vs' : 'at';

有了这些:

代码语言:javascript
复制
// Home?
$home = ($event_date->event['hc'] == 'stan');
// Only show opponents' name
$name = $home ? $event_date->event['hn'] : $event_date->event['vn'];
// Output "vs" if home game or "at" if away game
$preposition = $home ? 'vs' : 'at';

并且您不需要在我编写的代码中使用$home。

下面是完整的代码:

代码语言:javascript
复制
<?php
$xml = simplexml_load_file('http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml');

// Reverse chronological order
$xmlArray = array();
foreach ($xml as $event_date) $xmlArray[] = $event_date;
$xmlArray = array_reverse($xmlArray);

foreach ($xmlArray as $event_date)
{
    // Only output if complete
    if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
    {
    // Home?
    $home = ($event_date->event['hc'] == 'stan');
    // Only show opponents' name
    $name = $home ? $event_date->event['vn'] : $event_date->event['hn'];
    // Output "vs" if home game or "at" if away game
    $preposition = $home ? 'vs' : 'at';
    echo '<li>';
        echo '<h3>', $preposition, ' ', $name, ' - ', ((int)$event_date->event['hs'] == (int)$event_date->event['vs'] ? "Tie" : (((int)$event_date->event['hs'] > (int)$event_date->event['vs']) ? ($home? 'Win' : 'Loss') : ($home ? 'Loss' : 'Win'))), '</h3>';
        echo '<p><strong>', $event_date->event['vn'], ' ', $event_date->event['vs'], ' - ', $event_date->event['hn'], ' ', $event_date->event['hs'], '</strong></p>';
        echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>';
    echo '</li>';
    }
}   
?>

使用"if's“和更多注释扩展代码:

代码语言:javascript
复制
<?php
$xml = simplexml_load_file('http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml');

// Reverse chronological order
$xmlArray = array();
foreach ($xml as $event_date) $xmlArray[] = $event_date;
$xmlArray = array_reverse($xmlArray);

foreach ($xmlArray as $event_date)
{
    // Only output if complete
    if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs']))
    {
    // Home?
    $home = ($event_date->event['hc'] == 'stan');
    // Only show opponents' name
    $name = $home ? $event_date->event['vn'] : $event_date->event['hn'];
    // Output "vs" if home game or "at" if away game
    $preposition = $home ? 'vs' : 'at';
    if((int)$event_date->event['hs'] == (int)$event_date->event['vs']) // Tie?
    {
    $result = 'Tie'; // Tie
    }
    else if((int)$event_date->event['hs'] > (int)$event_date->event['vs']) // Home team won?
    {
    if($home) // Home?
    {
    $result = 'Win'; // You're home and the home team won
    }
    else
    {
    $result = 'Loss'; // You're away, but the home team won
    }
    }
    else // Home team lost
    {
    if($home) // Home?
    {
    $result = 'Loss'; // You're away, but the home team won
    }
    else
    {
    $result = 'Win'; // You're home and the home team won
    }
    }
    echo '<li>';
        echo '<h3>', $preposition, ' ', $name, ' - ', $result, '</h3>';
        echo '<p><strong>', $event_date->event['vn'], ' ', $event_date->event['vs'], ' - ', $event_date->event['hn'], ' ', $event_date->event['hs'], '</strong></p>';
        echo '<p>', date('F j, Y', strtotime($event_date['date'])), '</p>';
    echo '</li>';
    }
}   
?>
票数 3
EN

Stack Overflow用户

发布于 2011-05-13 01:37:42

假设$event_date->event['hs']Home Score$event_date->event['vs'] is

代码语言:javascript
复制
echo ($event_date->event['hs'] > $event_date->event['vs']) ? 'WIN' : 'LOSS';

或者,如果有平局的可能性:

代码语言:javascript
复制
echo ($event_date->event['hs'] > $event_date->event['vs']) ? 'WIN' : ($event_date->event['hs'] < $event_date->event['vs']) ? 'LOSS' : 'TIE';

注意:此答案的输出完全基于主队。因为你需要它总是引用斯坦福大学,所以@Tyilo的答案是更好的匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5981853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档