php中有一个foreach循环
当循环大于2项时,我想显示一些文本而不是循环。这可能吗?
例如:包含2个或更少项目的循环显示= item 1, item2
包含更多条目的循环显示text = multiple items。
指示的示例代码:
$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>";
我认为你想在你的if语句中使用break
:
if ($count++ > 2) {
echo 'SomeNewText';
break;
}
您可以在循环之前对数组进行count
:
if(count($attValConfigSingle['values']) > 2) {
// More than 2 items
echo "Lots of things";
} else {
// 2 items or less
foreach($attValConfigSingle['values'] as $value) {
// ...
}
}
编辑:
也许我没有正确理解你的意思。如果你想要文本:项目1,项目2,其他项目…
然后你需要使用break
来跳出你的循环:
foreach($attValConfigSingle['values'] as $attValConfigSingleVal) {
if ($count++ > 2) {
echo 'SomeNewText';
break;
} else {
echo "<option>"list of items"</option>";
}
}
只需声明一个变量,用于存储foreach循环期间生成的文本。当你用完后,如果count小于3,打印这个字符串,否则打印其他文本。