Как отобразить какой-то текст внутри цикла for только один раз? - PullRequest
2 голосов
/ 15 апреля 2011

У меня есть этот кусок кода

<?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', я получаю сообщение «Неправильный тип» много раз, поскольку цикл продолжается.Как я могу повторить это сообщение только один раз?

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

Вам просто нужно будет отслеживать, показали ли вы это или нет:

$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"?

1 голос
/ 15 апреля 2011

Вы можете вставить break; после оператора echo, чтобы выйти из цикла при выполнении условия.Используйте break n; для выхода из n слоев циклов / условных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...