首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止每个循环的重复结果?

如何防止每个循环的重复结果?
EN

Stack Overflow用户
提问于 2019-12-24 02:29:09
回答 2查看 57关注 0票数 0

我使用一个foreach循环来查看与我的自定义post类型关联的自定义分类法。我的问题是,我得到了多个按钮显示的帖子,有超过一个税收期限选择。

我想要做的是循环搜索一个或多个“年龄/年级”,然后用正确的文本和链接显示一个按钮。然而,我得到一个按钮,为每个年级选定的课程(例如,一个3-6级课程有四个按钮:每个适用的等级一个)。

有什么办法防止重复吗?

以下是我的当前代码:

代码语言:javascript
复制
<?php 
$agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade');
    if ($agegroup) {
        foreach ($agegroup as $group) {
            if ($group->slug == 'age-2' || 'age-3' || 'age-4') { ?>
                <a href="/preschool">
                <div class="blue-btn">
                    More Preschool Camps
                </div>
                </a> <?php ;
            }

            elseif ($group->slug == '1st-grade' || '2nd-grade' || '3rd-grade' || '4th-grade' || '5th- 
                    grade' || '6th-grade') { ?>
                <a href="/grades-k-6">
                <div class="blue-btn">
                    More Grade K-6 Camps
                </div>
                </a> <?php ;
            }

            elseif ($group->slug == '7th-grade' || '8th-grade' || '9th-grade' || '10th-grade' || '11th- 
                    grade' || '12th-grade' ) { ?>
                <a href="/teen">
                <div class="blue-btn">
                    More Teen Adventures
                </div>
                </a> <?php ;
            }
        }
    }
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-24 02:43:18

找到时使用单独的foreach循环和break

您的||也是not working how you want it to。您应该使用in_array,它正确地将相同的值与许多其他值进行比较:

代码语言:javascript
复制
<?php 
$agegroup = wp_get_post_terms(get_the_ID(), 'camper_grade');
    if ($agegroup) {
        foreach ($agegroup as $group) {
            if (in_array($group->slug, ['age-2', 'age-3', 'age-4'])) { ?>
                <a href="/preschool">
                <div class="blue-btn">
                    More Preschool Camps
                </div>
                </a> <?php ;
                break;
            }
        }
        foreach ($agegroup as $group) {
            if (in_array($group->slug, ['1st-grade', '2nd-grade', '3rd-grade', '4th-grade', '5th-grade', '6th-grade'])) { ?>
                <a href="/grades-k-6">
                <div class="blue-btn">
                    More Grade K-6 Camps
                </div>
                </a> <?php ;
                break;
            }
        }
        foreach ($agegroup as $group) {
            if (in_array($group->slug, ['7th-grade', '8th-grade', '9th-grade', '10th-grade', '11th-grade', '12th-grade'])) { ?>
                <a href="/teen">
                <div class="blue-btn">
                    More Teen Adventures
                </div>
                </a> <?php ;
                break;
            }
        }
    }
?>
票数 1
EN

Stack Overflow用户

发布于 2019-12-24 02:38:00

您需要添加一个标志来指示该组是否已经显示了该按钮,如果没有,则只输出该按钮。请注意,您的逻辑条件不正确,需要单独比较slug和每个值(或者更好地使用in_array)。例如:

代码语言:javascript
复制
if ($agegroup) {
    $preschool = $grades_k_6 = $teen = false;
    foreach ($agegroup as $group) {
        if (in_array($group->slug, array('age-2', 'age-3', 'age-4')) && !$preschool) { ?>
            <a href="/preschool">
            <div class="blue-btn">
                More Preschool Camps
            </div>
            </a> <?php ;
            $preschool = true;
        }
        elseif (in_array($group->slug, array('1st-grade', '2nd-grade', '3rd-grade', '4th-grade', '5th-grade', '6th-grade')) && !$grades_k_6) { ?>
            <a href="/grades-k-6">
            <div class="blue-btn">
                More Grade K-6 Camps
            </div>
            </a> <?php ;
            $grades_k_6 = true;
        }
        elseif (in_array($group->slug, array('7th-grade', '8th-grade', '9th-grade', '10th-grade', '11th-grade', '12th-grade')) && !$teen) { ?>
            <a href="/teen">
            <div class="blue-btn">
                More Teen Adventures
            </div>
            </a> <?php ;
            $teen = true;
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59463177

复制
相关文章

相似问题

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