首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环通过两个数组并显示值一次

循环通过两个数组并显示值一次
EN

Stack Overflow用户
提问于 2014-06-25 18:45:03
回答 2查看 61关注 0票数 0

我正在循环两个数组(健身房和游戏),并比较$体操的‘id’值和$游戏‘健身房_id’。如果两个值匹配,我将显示游戏日期和时间,如下所示。

代码语言:javascript
复制
<?php
$gyms = sw::shared()->gyms->getAll();
$games = sw::shared()->games->getAll();
?>

<?php foreach ($gyms as $gym) { ?>
    <?php foreach ($games as $game) { ?>
        <?php if ($game['gym_id'] == $gym['id']) { ?>
            <?php $match++; ?>
            <?php echo $gym['gym_name']; ?><br>
            <?php echo $game['date']; ?> <?php echo $game['time']; ?><br>
        <?php } ?>
    <?php } ?>
<?php } ?>

我也在用$健身房的名字显示健身房的名字,但是我只想让健身房的名字显示一次,如果那个健身房有游戏的话,这意味着它应该是这样的:

代码语言:javascript
复制
GYM 1 NAME
GAME 1 DATE GAME 1 TIME
GAME 2 DATE GAME 2 TIME
GAME 3 DATE GAME 3 TIME

GYM 2 NAME
GAME 4 DATE GAME 4 TIME
GAME 5 DATE GAME 5 TIME
GAME 6 DATE GAME 6 TIME

我该怎么重写这个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-25 18:56:27

试试这样的东西。

代码语言:javascript
复制
<?php
$gyms = sw::shared()->gyms->getAll();
$games = sw::shared()->games->getAll();

function getGymGames($gym){
    $gymGames = array();
    foreach ($games as $game) {
        if ($game['gym_id'] == $gym['id']) {
            array_push($gymGames,$game);
        }
    }

    return $gymGames;
}

?>

<?php
    foreach ($gyms as $gym) {
        $gymGames = getGymGames($gym);
        if(count($gymGames) > 0){?>
            <?=$gym['gym_name'];?><br />
            <?foreach($gymGames as $game){
            $match++;
            ?>
            <?= $game['date']; ?><br />
            <?= $game['time']; ?><br>
            <?}
        }
    }
?>
票数 1
EN

Stack Overflow用户

发布于 2014-06-25 18:58:31

我对PHP并不完全熟悉,但是为什么不做布尔值来标记它是否已经显示,并在显示之后切换它。

代码语言:javascript
复制
<?php
$gyms = sw::shared()->gyms->getAll();
$games = sw::shared()->games->getAll();
?>

<?php foreach ($gyms as $gym) { ?>
 <?php $notDisplayed=true; ?>
<?php foreach ($games as $game) { ?>
    <?php if ($game['gym_id'] == $gym['id']) { ?>
        <?php $match++; ?>
         <?php if($displayed) { ?> 
          <?php echo $gym['gym_name']; ?><br>
          <?php $notDisplayed=false;?>
        <?php } ?>
        <?php echo $game['date']; ?> <?php echo $game['time']; ?><br>
    <?php } ?>
<?php } ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24416232

复制
相关文章

相似问题

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