цикл foreach - если больше, чем count или - PullRequest
2 голосов
/ 23 декабря 2011

У меня есть цикл foreach в php.

Когда цикл превышает 2 элемента, я бы хотел отобразить текст вместо цикла. Это возможно?

Например: цикл из 2 или менее элементов показывает = элемент 1, элемент2

В цикле из большего количества элементов отображается текст = Несколько элементов.

Пример кода для индикации:

$count++; 
foreach($attValConfig as $attValConfigSingle) { 
if ($attValConfigSingle["frontend_label"] == "LABELTEXT") { 
echo ('<div class="attributes_row">Text</div>');

foreach($attValConfigSingle['values'] as $attValConfigSingleVal) {

if ($count++ > 2)   { echo 'SomeNewText'; }
else echo "<option>"list of items"</option>";

Ответы [ 3 ]

4 голосов
/ 23 декабря 2011

Я думаю, что вы хотите break в вашем выражении if:

if ($count++ > 2)   { 
    echo 'SomeNewText'; 
    break;
}
1 голос
/ 23 декабря 2011

Вы можете count массив перед циклом:

if(count($attValConfigSingle['values']) > 2) {
    // More than 2 items
    echo "Lots of things";
} else {
    // 2 items or less
    foreach($attValConfigSingle['values'] as $value) {
        // ...
    }
}

Edit:

Может быть, я вас не правильно понял. Если вы хотите текст:

пункт 1, пункт 2, другие элементы ...

Тогда вам нужно использовать break, чтобы выйти из цикла:

foreach($attValConfigSingle['values'] as $attValConfigSingleVal) {
    if ($count++ > 2) {
       echo 'SomeNewText';
       <strong>break;</strong>
    } else {
        echo "<option>"list of items"</option>";
    }
}
0 голосов
/ 23 декабря 2011

Просто объявите переменную, в которой вы храните свой текст, созданный во время циклов foreach. Когда вы вышли из нее, выведите эту строку, если число меньше 3, в противном случае - другой текст.

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