2011-04-14 33 views
2

我有這樣一段代碼如何僅在for循環中回顯一些文本?

<?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',我得到的消息「不正確的類型」多次循環仍在繼續。我如何只能回覆該消息一次?

回答

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的所有值顯示「不正確的類型」,其標題不是"list"

+0

你是對的,但是數組的構建方式是,如果第一個標題是'list',那麼所有下一個標題也將是'list'。感謝答覆。它很棒! – 2011-04-14 21:54:37

1

您可以在echo語句之後插入break;以在條件滿足時退出循環。使用break n;退出n層循環/條件。