foreach PHP中的For循环

时间:2018-07-03 08:51:48

标签: php twitter-bootstrap-3 bootstrap-4

我有一个简单的数组,例如:

$array = [val-1, val-2, val-3, val-4, val-5 val-6, etc]

我想将其传递给foreach循环,但在该循环内,我希望另一个循环将结果按4分组。这是将它们放入行div内的col-md-3 div中。请告诉我是否可行以及如何实现。 这就是我想要的:

<div class="row">
    <div class="col-md-3">Value 1</div>
    <div class="col-md-3">Value 2</div>
    <div class="col-md-3">Value 3</div>
    <div class="col-md-3">Value 4</div>
</div>
<div class="row">
    <div class="col-md-3">Value 5</div>
    <div class="col-md-3">Value 6</div>
    <div class="col-md-3">Value 7</div>
    <div class="col-md-3">Value 8</div>
</div>

谢谢。

2 个答案:

答案 0 :(得分:0)

假设您总是要有4列,则需要对数组进行一些数学运算。像下面这样的东西应该起作用:

$arr  = [ 'val1', 'val2', 'val3', 'val4', 'val5', 'val6', 'val7', 'val8' ];
$cols = 4;
$rows = ceil( count($arr) / $cols );

for( $r = 0; $r < $rows; $r++ )
{
    echo '<div class="row">';

    for( $c = 0; $c < $cols; $c++ )
    { 
        echo "\n\t".'<div class="col-md-'.(12 / $cols).'">'.$arr[($r * $cols) + $c].'</div>';
    }

    echo "\n".'</div>';
}

此代码产生以下输出:

<div class="row">
    <div class="col-md-3">val1</div>
    <div class="col-md-3">val2</div>
    <div class="col-md-3">val3</div>
    <div class="col-md-3">val4</div>
</div>
<div class="row">
    <div class="col-md-3">val5</div>
    <div class="col-md-3">val6</div>
    <div class="col-md-3">val7</div>
    <div class="col-md-3">val8</div>
</div>

答案 1 :(得分:-1)

我能想到的一个解决方案是通过循环将数组手动分成4组。请参见下面的代码:

$array = ['val-1', 'val-2', 'val-3', 'val-4', 'val-5', 'val-6', 'val-7', 'val-8'];
$result = array();
$temp = array();

$i = 1;
foreach ($array as $elem) {
    array_push($temp, $elem);
    if (($i % 4) == 0) {
        array_push($result, $temp);
        $temp = array();
    }
    $i++;
}

echo "<pre>"; print_r($result);

希望这会有所帮助。