【问题标题】:foreach loop - if greater than count or elseforeach 循环 - 如果大于计数,否则
【发布时间】:2012-01-26 22:25:03
【问题描述】:

我在 php 中有一个 foreach 循环。

当循环大于 2 项时,我想显示一些文本而不是循环。这可能吗?

例如:一个包含 2 个或更少项目的循环显示 = item 1, item2

更多项目的循环显示文本 = 多个项目。

指示示例代码:

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

【问题讨论】:

  • 看来您已经有了解决方案(中断)。如果可能,请向我们提供有关正在传递的数据的更多详细信息,如果这不能解决您的问题,则循环是否正常工作。

标签: php foreach if-statement


【解决方案1】:

我想你想在你的 if 语句中break

if ($count++ > 2)   { 
    echo 'SomeNewText'; 
    break;
}

【讨论】:

    【解决方案2】:

    你可以在循环之前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>";
        }
    }

    【讨论】:

      【解决方案3】:

      只需声明一个变量,用于存储在 foreach 循环中构建的文本。用完后,如果 count 小于 3,则打印此字符串,否则打印其他文本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-12
        • 2017-10-16
        • 1970-01-01
        • 2016-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多