php循环使用div和自定义类包装每4个结果
我试图根据每个包装块的结果数量添加一些自定义类php循环使用div和自定义类包装每4个结果,php,foreach,Php,Foreach,我试图根据每个包装块的结果数量添加一些自定义类 在每个包装块的最后一个上添加类last 计算每个包装块的结果,并根据结果添加一个自定义类,1/21/31/4 代码如下: <?php $array = range(1, 11); $i= 0; foreach ($array as $val) { if ($i%4 == 0) echo '<div class="item">'; $i++; ?> <span c
last
1/2
1/3
1/4
<?php
$array = range(1, 11);
$i= 0;
foreach ($array as $val) {
if ($i%4 == 0) echo '<div class="item">';
$i++;
?>
<span class="one-fourth"><?=$val?></span>
<?php
if ($i%4 == 0) echo '</div>';
}
if ($i%4 != 0) echo '</div>';
?>
我得到的输出:
<div class="item">
<span class="one-fourth">1</span>
<span class="one-fourth">2</span>
<span class="one-fourth">3</span>
<span class="one-fourth">4</span>
</div>
<div class="item">
<span class="one-fourth">5</span>
<span class="one-fourth">6</span>
<span class="one-fourth">7</span>
<span class="one-fourth">8</span>
</div>
<div class="item">
<span class="one-fourth">9</span>
<span class="one-fourth">10</span>
<span class="one-fourth">11</span>
</div>
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
我想要的输出:
<div class="item">
<span class="one-fourth">1</span>
<span class="one-fourth">2</span>
<span class="one-fourth">3</span>
<span class="one-fourth last">4</span>
</div>
<div class="item">
<span class="one-fourth">5</span>
<span class="one-fourth">6</span>
<span class="one-fourth">7</span>
<span class="one-fourth last">8</span>
</div>
<div class="item">
<span class="one-third">9</span>
<span class="one-third">10</span>
<span class="one-third last">11</span>
</div>
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
这可能最容易通过将数组拆分为块并在循环中单独处理每个块来完成,使用块的计数来决定要添加到跨度中的类:
$array = range(1, 11);
$chunks = array_chunk($array, 4);
$span_classes = ['', 'one-half', 'one-third', 'one-fourth'];
foreach ($chunks as $chunk) {
echo "<div class=\"item\">\n";
$count = count($chunk);
$span_class = $span_classes[$count-1];
for ($i = 0; $i < $count; $i++) {
$last = $i == $count - 1 ? ' last' : '';
$val = $chunk[$i];
echo "<span class=\"$span_class$last\">$val</span>\n";
}
echo "</div>\n";
}
$array=范围(1,11);
$chunks=array\u chunk($array,4);
$span_classes=['','一半','三分之一','四分之一';
foreach($chunk作为$chunk){
回音“\n”;
$count=count($chunk);
$span_类=$span_类[$count-1];
对于($i=0;$i<$count;$i++){
$last=$i==$count-1?'last':'';
$val=$chunk[$i];
回显“$val\n”;
}
回音“\n”;
}
输出:
<div class="item">
<span class="one-fourth">1</span>
<span class="one-fourth">2</span>
<span class="one-fourth">3</span>
<span class="one-fourth last">4</span>
</div>
<div class="item">
<span class="one-fourth">5</span>
<span class="one-fourth">6</span>
<span class="one-fourth">7</span>
<span class="one-fourth last">8</span>
</div>
<div class="item">
<span class="one-third">9</span>
<span class="one-third">10</span>
<span class="one-third last">11</span>
</div>
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
这可能最容易通过将数组拆分为块并在循环中单独处理每个块来完成,使用块的计数来决定要添加到跨度中的类:
$array = range(1, 11);
$chunks = array_chunk($array, 4);
$span_classes = ['', 'one-half', 'one-third', 'one-fourth'];
foreach ($chunks as $chunk) {
echo "<div class=\"item\">\n";
$count = count($chunk);
$span_class = $span_classes[$count-1];
for ($i = 0; $i < $count; $i++) {
$last = $i == $count - 1 ? ' last' : '';
$val = $chunk[$i];
echo "<span class=\"$span_class$last\">$val</span>\n";
}
echo "</div>\n";
}
$array=范围(1,11);
$chunks=array\u chunk($array,4);
$span_classes=['','一半','三分之一','四分之一';
foreach($chunk作为$chunk){
回音“\n”;
$count=count($chunk);
$span_类=$span_类[$count-1];
对于($i=0;$i<$count;$i++){
$last=$i==$count-1?'last':'';
$val=$chunk[$i];
回显“$val\n”;
}
回音“\n”;
}
输出:
<div class="item">
<span class="one-fourth">1</span>
<span class="one-fourth">2</span>
<span class="one-fourth">3</span>
<span class="one-fourth last">4</span>
</div>
<div class="item">
<span class="one-fourth">5</span>
<span class="one-fourth">6</span>
<span class="one-fourth">7</span>
<span class="one-fourth last">8</span>
</div>
<div class="item">
<span class="one-third">9</span>
<span class="one-third">10</span>
<span class="one-third last">11</span>
</div>
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11