一半在右边,一半在左边

时间:2010-09-06 20:38:14

标签: php html

我目前正试图找到一个很好的解决方案,如何处理这个

$all_products

这是一个包含7个产品的数组,我需要遍历它们来创建动态页面,但我对页面有一些结构问题

<div class="left-pane left">
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
</div>
<div class="right-pane left">
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
  <div class="item">
  </div>
</div>

我怎么知道在右边和左边放多少,我可以在那之间交替,或者我需要在左边做一些像(count($ all_product)/ 2)然后在右边做其他事情窗格。另外我如何使用一侧只循环一半。我如何找出该做什么,因为每次数组都会有不同的数量

<?php foreach ($all_products as $product) { ?>

3 个答案:

答案 0 :(得分:4)

您可以使用以下内容单独构建每一半:

$i = 0;
$left  = '<div class="right-pane left">';
$right = '<div class="right-pane right">';

foreach ($products as $product) {
    if ($i++ % 2 == 0) {
        $left  .= '<div class="item">' . $product . '</div>';
    } else {
        $right .= '<div class="item">' . $product . '</div>';
    }
}

$left  .= '</div>';
$right .= '</div>';

答案 1 :(得分:1)

另一种方法是给它们一个固定宽度并将它们全部悬浮在一个固定宽度的容器中。

.item {
    float: left;
    width: 300px;
}

这是一个启动示例:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 3654173</title>
        <style>
            #items { 
                width: 600px;
            }
            .item {
                float: left;
                width: 300px;
            }
        </style>
    </head>
    <body>
        <div id="items">
            <div class="item">item1</div>
            <div class="item">item2</div>
            <div class="item">item3</div>
            <div class="item">item4</div>
            <div class="item">item5</div>
        </div>
    </body>
</html>

它只会从左到右,然后从上到下,而不是原始问题中的其他方向。不确定是否会伤害。

答案 2 :(得分:0)

$i = 0;
$left = "";
$right = "";
foreach ($all_products as $product) {
   if($i%2==0) $left.= '<div class="item">'.$product.'</div>';
   else $right.= '<div class="item">'.$product.'</div>';
   $i++;
}
echo '<div class="left-pane left">'.$left.'</div>'.'<div class="right-pane left">'.$right.'</div>';