在php中为嵌套循环提供逻辑帮助

时间:2013-02-12 16:09:22

标签: php loops nested logic nested-loops

假设我有8个php对象,我需要迭代它们并根据它们的位置以不同的方式将各种信息输出到html中。我已经开发了css和html的结构,你可以在这里看到它:http://jsfiddle.net/v3qcc/9/ 我只需要帮助他们动态放置它们的逻辑。

我需要将每两个对象放在这个包装器中:

<div class="col">
    <div class="third">
        <div class="col-content">         
          **...Object One Here**
        </div>
    </div>

    <div class="fourth">
        <div class="col-content">         
          **...Object Two Here**
        </div>
    </div>
</div>

<div class="col">
    <div class="third">
        <div class="col-content">         
          **...Object Three Here**
        </div>
    </div>

    <div class="fourth">
        <div class="col-content">         
          **...Object Four Here**
        </div>
    </div>
</div>

3 个答案:

答案 0 :(得分:1)

// heres a class
class thing {
public $ybob = 23;
}

// create an array of 8 of them
$i = 0;
$a= array();
while(8> $i){
$a[$i] = new thing;
$i++;
}
//var_dump($a);

// loop thru the array of objects
$rows = 1;
foreach($a as $ob){

// use modulus operator to work out if a row is odd or even
echo ( ($rows % 2)  === 1 ) ?  '<br />NEW ROW' : '' ;
echo $ob->ybob . ' - ' ;  // output the objects data in any case
$rows++;
}

在3行向上的三元运算符中,您可以添加额外的行标记,或者如果您想使用更多的标记行,则还原if / else。

给出:

NEW ROW 23 - 23 - 
NEW ROW 23 - 23 - 
NEW ROW 23 - 23 - 
NEW ROW 23 - 23 -

答案 1 :(得分:1)

试试这个:

<?php

echo '<div class="col">';

for ($i=0; $i<$max_elements; $i++)
{
    $class = ($i&1) ? "third" : "fourth";

    echo '<div class="'.$class.'">
              <div class="col-content">         
               **...Object num : '.$i.' Here**
              </div>
         </div>';
}

echo '</div>';

答案 2 :(得分:0)

Personnaly,如果它是偶数或奇数,我将测试每次在循环中递增的指标,并根据此显示模板需求。