PHP每隔n个div

时间:2015-03-12 04:24:24

标签: php loops while-loop

我需要在我的网站上有几个不同大小的div,我现在用简单的PHP循环打印类。首先它适用于少数第一个div但在此之后它不起作用。

这是我想要的情况

<div class="row">
    <div class="small special"></div>
    <div class="small special"></div>
    <div class="large"></div>
</div>
<div class="row">
    <div class="small special"></div>
    <div class="large"></div>
    <div class="small"></div>
</div>
<div class="row">
    <div class="large"></div>
    <div class="small"></div>
    <div class="small"></div>
</div>
<div class="row">
    <div class="small"></div>
    <div class="small"></div>
    <div class="large"></div>
</div>
<div class="row">
    <div class="small"></div>
    <div class="large"></div>
    <div class="small"></div>
</div>

从那以后它继续使用与最后2行相同的模式。所以基本上大的div在每一行从右向左移动。特殊div来自循环。这是我目前的php:

<div class="row">
    <div class="small special"></div>
     <div class="small special"></div>
    <?php while loopstuff here ?>
    <?php 
        if ( $i == 0 || $i == 1 || ($i %3) == 0 ) : 
            $size = "large";
        else :
            $size = "small";
        endif; 
    ?>
    <?php if ( $i == 1 ) : ?>
        <div class="small special"></div>
    <?php endif; ?>
    <div class="<?php echo $size; ?>"></div>
    <?php if ( $i == 0 || $i == 2 || ($i % 3) == 0 ) : ?>
        </div><!-- .row -->
        <div class="row">
    <?php endif; ?>
    <?php $i++; ?>
<?php endwhile; // end of the loop. ?>
</div>

前两行工作正常但后面的行打印一行或两行。所以我的问题是这个($ i%3)== 0)我相信。

1 个答案:

答案 0 :(得分:0)

可定制的工作原型:

<?php
    $iTotalRowCount = 10;
    for( $i = 0; $i < $iTotalRowCount; ++$i )
    {
        $aPositions = array();
        if( ( $i % 3 ) === 0 )
        {
            $aPositions = array( 'small', 'small', 'large' );
        }
        else if( ( $i % 3 ) === 1 )
        {
            $aPositions = array( 'small', 'large', 'small' );
        }
        else if( ( $i % 3 ) === 2 )
        {
            $aPositions = array( 'large', 'small', 'small' );
        }
        $iCountPositions = count( $aPositions );
        for( $k = 0; $k < $iCountPositions; ++$k )
        {
            echo '<div class="' . $aPositions[ $k ] . '">' . $aPositions[ $k ] . '</div>';
        }
        echo '<br />';
        echo 'Set end.';
        echo '<br />';
    }
?>