PHP foreach表列

Nic*_*ney 1 html php mysql foreach html-table

我想让它每3列形成一个新行.我迷失了,甚至在读完其他帖子之后也无法弄清楚如何做到这一点.所以我希望它就像

图标图标图标
图标图标图标
图标图标图标
等....

foreach($sMenu as $row) {
    $sClass = ($row['id'] == $aPage['id']) ? ' class="ui-btn-active ui-btn-custom"' : ' class="ui-btn-custom"';
    $sIcon = ($row['icon'] != '') ? ' data-icon="' . $row['icon'] . '"' : '';

    $sSiteRoot = get('site-root');

    $row['url'] .= ($row['url'] == '') ? '' : '/';

    $url = $sSiteRoot . $row['url'];
    $url = str_replace('(', '%28', $url);
    $url = str_replace(')', '%29', $url);
    $url = str_replace("'", '%27', $url);
    $sNavigation2 .= '<td><img src=". $sIcon .' . $url . '"></td>';
}
Run Code Online (Sandbox Code Playgroud)

sum*_*mea 5

有时,最简单的方法是让变量跟踪运行此循环的次数.例如:

$i = 0;
Run Code Online (Sandbox Code Playgroud)

然后,在循环内部,只需检查数字$i是否等于2(在这种情况下).

foreach($sMenu as $row) {

    // this is all your old code right here...

    if ($i == 2) { 
        // then add your </tr><tr> break or whatever...
        $i = 0;
    } else {
        $i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,继续经历foreach循环.

这也可以使用模数运算符作为编写此"行中断"检查的更简洁方法来完成(如此处的其他答案所示).