foreach导致两列

时间:2016-02-20 04:58:58

标签: php html mysql

亲爱的stackoverflow专家,

我希望将我的foreach列在两列中,我的脚本是:

<?php $items = $wpo_wcpdf->get_order_items();
   if( sizeof( $items ) > 0 ) : foreach( $items as $item ) : ?>
      <tr>
        <td class="description">
            <?php echo $item['name']; ?><?php echo $item['meta']; ?>
            <?php echo $item['quantity']; ?>
        </td>
      </tr>
<?php endforeach; endif; ?>

(例如结果:ANDREW 10)

我希望结果分为两列(第1列:ANDREW 10,第2列,SITO 11?

3 个答案:

答案 0 :(得分:0)

您将它们排列为行,而不是列。

  

解决方案:<tr>标记放在foreach循环之外。

<强>更新

之后,将foreach更改为for循环并创建两个<td>(列)。然后在元素的索引和第一列中的元素数之间进行比较(使用if)。

示例: 我们假设您在第一列中有10个元素。

if ($i < 10) {
  // put in the first column
} else {
  // put in the second column
}

,其中$i是for循环的索引。

答案 1 :(得分:0)

改变
<?php $items = $wpo_wcpdf->get_order_items();
   if( sizeof( $items ) > 0 ) : foreach( $items as $item ) : ?>
      <tr>
        <td class="description">
            <?php echo $item['name']; ?><?php echo $item['meta']; ?>
            <?php echo $item['quantity']; ?>
        </td>
      </tr>
<?php endforeach; endif; ?>

    <?php $items = $wpo_wcpdf->get_order_items();$i=0;
       if( sizeof( $items ) > 0 ) : foreach( $items as $item ) :  if($i%2==0){ ?>

         <tr>
            <td class="description">
                <?php echo $item['name']; ?><?php echo $item['meta']; ?>
                <?php echo $item['quantity']; ?>
            </td>
        </tr>
    <?php $i++; } endforeach; endif; ?>

答案 2 :(得分:0)

您可以在此目的使用列数,您可以根据您的需求更改样式,只需更改描述类即可。你可以设置边框。通过项属性column-gap: 40px;创建的这两列的间隙,您也可以更改它。

试试这个, 的 CSS:

<style>
    .items {
        -webkit-column-count: 2; /* Chrome, Safari, Opera */
        -moz-column-count: 2; /* Firefox */
        column-count: 2;
        -webkit-column-gap: 40px; /* Chrome, Safari, Opera */
        -moz-column-gap: 40px; /* Firefox */
        column-gap: 40px;
    }
    .description{
        display: block;
    }
</style>

<强> PHP:

<div class="items">
<?php 
//$items = $wpo_wcpdf->get_order_items();
$items = array(array("name" => "andrew", "quantity" => "10", "meta" => ""), array("name" => "andrew", "quantity" => "10", "meta" => ""), array("name" => "andrew", "quantity" => "10", "meta" => ""), array("name" => "andrew", "quantity" => "10", "meta" => ""), array("name" => "andrew", "quantity" => "10", "meta" => ""));
   if( sizeof( $items ) > 0 ) : foreach( $items as $item ) : ?>
    <span class="description">
      <?php echo $item['name']; ?><?php echo $item['meta']; ?>
      <?php echo $item['quantity']; ?>
    </span>
<?php endforeach; endif; ?>
</div>