繁体   English   中英

当item = 4时,PHP拆分列

[英]PHP Split column when item = 4

我有一个数组,现在我将这个数组放入for loop以显示此数组中的每个项目,但我想要设置项目限制(每列4个项目),这是我的代码。

<?php 
    $area = $custom_area_settings; //is an array with 5 element
    for($i=0;$i<=count($area->custom_area_list) - 1; $i++):
        if($area->custom_area_list[$i]->top_show):
            echo '<div class="sub-column column'.$i.'">';
            echo '<p class="line"> ' . $area->custom_area_list[$i]->header . '</p>';
            echo '</div>';
        endif;
    endfor;
?>

在这段代码中,div column$i已经创建了每次循环运行但我只想在循环运行4次时创建此div,4次此div再次创建,8次后此div将再次创建并继续...

这是我想要的结果。

Column 1           Column 2
---------------    ---------------
item 1             item 5
item 2             item 6
item 3             item 7
item 4             item 8

这是我现在得到的结果

Column 1
---------------------
item 1
Column 2
---------------------
item 2
.....

请帮忙。

更新:

$html = $i%4 === 0 ? '<div class="sub-column column'
                     . $i . '">' 
                     . '{1}' . '</div>' : '{1}';

echo strtr($html,array('{1}' => '<p class="line"> '
                              . $area->custom_area_list[$i]->header
                              . '</p>'
          ));

$ i除以4并返回在这种情况下必须等于0的余数

我建议你使用array_chunk命令

$chunkedArray = array_chunk(['One', 'Two', 'Three', 'Four', 'Five'], 4);

echo '<div class="row">';
array_walk( $chunkedArray, function($array) 
{
    echo '<div class="col-md-4">'          
    foreach( $array as $key => $value )
    {
        echo "<p class='line'>$value</p>";
    }
    echo '</div>';
});
echo '</div>';

此示例是使用twitter bootstrap css类创建的。 我确信它可以被优化,只是展示array_chunk方法。

<?php
    $area = $custom_area_settings; //is an array with 5 element
    $i=0;
    echo '<div class="sub-column column'.$i.'">';
    for($i=0;$i<=count($area->custom_area_list) - 1; $i++):
        if($area->custom_area_list[$i]->top_show):
            if($i%4 === 0):
                echo '</div>';
                echo '<div class="sub-column column'.$i.'">';
            endif;
            echo '<p class="line"> ' . $area->custom_area_list[$i]->header . '</p>';
        endif;
    endfor;
    echo '</div>';
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM