0

如果列大于 3,我想使用 PHP 循环创建一行,因为我使用的是 wordpress

我的代码在这里

<div class="row">
    <div class="column">column1</div>
    <div class="column">column2</div>
    <div class="column">column3</div>
</div>

如果列大于 3,那么它应该像这样创建一个新行

<div class="row">
    <div class="column">column1</div>
    <div class="column">column2</div>
    <div class="column">column3</div>
</div>

<div class="row">
    <div class="column">column1</div>
  </div>

任何帮助将不胜感激。

提前致谢

4

3 回答 3

3

当然 - 只需使用模数:

<?php
    $elements = array('foo', 'bar', 'rab', 'oof');

    echo '<div class="row">';
    foreach ($elements as $i => $element) {
        if ($i > 0 && $i % 3 == 0) {
            echo '</div><div class="row">';
        }
        echo '<div class="column">' . $element . '</div>';
    }
    echo '</div>';
?>

演示

输出:

<div class="row">
    <div class="column">foo</div>
    <div class="column">bar</div>
    <div class="column">rab</div>
</div>
<div class="row">
    <div class="column">oof</div>
</div>
于 2013-10-17T08:28:29.363 回答
1

你需要这样的东西:

<?
echo '<div class="row">';
for ($i=0; $i<15;$i++){
    if ($i%3 == 0 && $i != 0){
        echo '</div><div class="row">';
    }
    echo '<div class="column">column '.($i+1).'</div>';

}
echo '</div>';
?>

工作代码

于 2013-10-17T08:29:20.053 回答
0

有功能的替代解决方案。

<?php
// Managing the Code -- Functions: Handling a Variable Number of Parameters
// building a row of 10 <td> columns with a variable number of items
function preferencesRow()
{
    // initialize $output
    $output = '';
    // use "func_get_args()" to collect all parameters into an array
    $params = func_get_args();
    // used to make sure 10 columns are filled
    $maxCols = 10;

    // loop through the parameters
    foreach ($params as $item) {
        $output .= "<td width='80px' align='center'>$item</td>\n";
        $maxCols--;
    }

    // fill in the rest of the row with empty columns
    for ($x = 0; $x < $maxCols; $x++) {
        $output .= "<td width='80px'>&nbsp;</td>\n";
    }
    return $output;
}

// NOTE: you can use "." or "," with echo
echo '<h1>Preferences</h1><hr />' . PHP_EOL;    
echo '<table border=1>' . PHP_EOL;
echo '<tr><th>Tarzan</th>';
echo preferencesRow('Africa', 'jungles', 'tantor', 'mangani', 'cabin in the woods', 
                    'hunting', 'swinging in trees', 'Jane');
echo '</tr>';
echo '<tr><th>Jane</th>';
echo preferencesRow('London', 'parties', 'dancing', 'social events', 'lavish estates');
echo '</tr>';
echo '</table>' . PHP_EOL;
于 2016-02-01T16:31:47.493 回答