该原理类似于对表格进行斑马条纹处理,但并不完全相同,因此我很难找到解决方案/思考如何做到这一点。
我正在尝试交替每行的列数。每个奇数行有 4 列,每个偶数行有 3 个。
如果我的查询返回 11 条记录,我想:
- 将前四个输出为 1 行 4 列
- 接下来的三个成1行3列
- 最后四成1行4列
我在 phpfiddle 上发布了一个示例数组和标记来帮助说明我的目标: http ://phpfiddle.org/main/code/h9r-hj1
任何帮助表示赞赏!
该原理类似于对表格进行斑马条纹处理,但并不完全相同,因此我很难找到解决方案/思考如何做到这一点。
我正在尝试交替每行的列数。每个奇数行有 4 列,每个偶数行有 3 个。
如果我的查询返回 11 条记录,我想:
我在 phpfiddle 上发布了一个示例数组和标记来帮助说明我的目标: http ://phpfiddle.org/main/code/h9r-hj1
任何帮助表示赞赏!
测试和工作。换行符可以根据您的需要重新定位。
<?php
$items[334] = array( 'name' => 'L. Dalton', 'id' => 3456921 );
$items[234] = array( 'name' => 'B. Harris', 'id' => 563456 );
$items[212] = array( 'name' => 'R. Fox', 'id' => 6879879 );
$items[654] = array( 'name' => 'T. Marcus', 'id' => 14234 );
$items[865] = array( 'name' => 'M. Kitsap', 'id' => 79087 );
$items[875] = array( 'name' => 'P. McDonald', 'id' => 2454662 );
$items[675] = array( 'name' => 'J. Harvey', 'id' => 234545 );
$items[343] = array( 'name' => 'G. Steinmetz', 'id' => 8578768 );
$items[167] = array( 'name' => 'R. Stanley', 'id' => 34234 );
$items[899] = array( 'name' => 'C. Morris', 'id' => 546378 );
$items[932] = array( 'name' => 'S. Tan', 'id' => 578758 );
$counter = 1;
$limit = 4;
foreach($items as $item)
{
if($limit == 4 && $counter == 1)
{
?><div class="four-up"><?php echo "\n";
}
else if($limit == 3 && $counter == 1)
{
?><div class="three-up"><?php echo "\n";
}
?><div class="col col-<?php echo $counter; ?>"> <?php echo $item['name']; ?> <br /><?php echo $item['id']; ?></div><?php echo "\n";
if($limit == $counter)
{
?></div><?php echo "\n";
$counter = 1;
if($limit == 3) $limit = 4;
else if($limit == 4) $limit = 3;
}
else
{
$counter++;
}
}
未经测试的代码,但它应该给出一个想法:
for ( $c=0 , $cnt=count($array) , $m=4 ; $c<$cnt ; ) // used like a while()
{
echo '<div class="', ($m==4 ? 'four' : 'three' ) ,'-up">';
for ( $cm=$cnt+$m ; $c<$cm ; ++$c)
{
// output row
}
unset($cm);
echo '</div>';
$m = ( $m == 4 ? 3 : 4 );
}
unset($c, $m , $cnt);