我有一个简单的数组,例如:
$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>
等
谢谢。
答案 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);
希望这会有所帮助。