【问题标题】:How to echo some text inside a for-loop only once?如何仅在 for 循环中回显某些文本一次?
【发布时间】:2026-01-15 11:05:02
【问题描述】:

我有这段代码

<?php for ($i=0;$i<sizeof($list["tags"]); $i++) {                    
    if ($list["tags"][$i]["title"]=='list') {
        echo 'Not correct type';
    }
    if ($list["tags"][$i]["title"]!='list') { 
?>

    <a href="...">Text</a>

<?php } 
    } 
?>

我的问题是当$list["tags"][$i]["title"]=='list' 时,随着循环的继续,我多次收到消息“类型不正确”。我怎样才能只回显该消息一次?

【问题讨论】:

    标签: php for-loop


    【解决方案1】:

    您只需要跟踪您是否已经展示过它:

    $shown = false;
    for ( $i = 0; $i < sizeof( $list['tags'] ); $i++ ) { 
        if ( $list['tags'][$i]['title'] == "list" && !$shown ) {
            echo "Not correct type";
            $shown = true;
        }
        if ( $list['tags'][$i]['title'] != "list" ) {
            echo '<a href="...">Text</a>';
        } 
    }
    

    但这提出了一个问题:为什么只希望消息显示一次?您不希望它为标题不是"list" 的所有$i 值显示“不正确的类型”吗?

    【讨论】:

    • 你是对的,但是数组的构建方式是,如果第一个标题是“列表”,那么所有下一个标题也将是“列表”。谢谢你的回答。效果很好!
    【解决方案2】:

    可以在echo语句后插入break;,满足条件时退出循环。使用 break n; 退出 n 层循环/条件。

    【讨论】: