如何只在for循环中回显一些文本?

时间:2011-04-14 21:38:01

标签: php for-loop

我有这段代码

<?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'时,随着循环的继续,我会多次收到消息'Not correct type'。我怎样才能回复该消息一次?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>';
    } 
}

但是这提出了一个问题:为什么你只想让信息显示一次?您是否希望它为标题不是$i的{​​{1}}的所有值显示“不正确的类型”?