如何将一个数组分成 3 组,然后每隔一行设置不同的样式?
How to split an array into groups of 3 and then style every other row differently?
如果我有这样的数组:
$food = array('steak', 'chicken', 'vegetables', etc);
我如何遍历数组并显示 3 个列表中的每一项,并且每隔一行设置不同的样式?
喜欢:
Steak chicken vegetables
Stuff stuff stuff // style this one differently
Blah blah blah
Stuff stuff stuff // style differently
我知道我能做到:
foreach (array_chunk($food, 3, true) as $array) {
echo '<ul>';
foreach ($array as $item) {
echo '<li>'.$item.'</li>';
}
echo '</ul>';
}
只是不确定如何获取除此之外的每一行内容。
使用 foreach()
循环,将 key
添加到 as key => value
。然后你可以使用模 %
修改每隔一行。
foreach (array_chunk($food, 3, true) as $key => $array) {
$oddeven = ($key%2 == 1) ? ' class="even"' : '';
echo '<ul'.$oddeven.'>';
foreach ($array as $item) {
echo '<li>'.$item.'</li>';
}
echo '</ul>';
}
您可以使用 implode()
避免编写内部循环。如果您使用正确的 css 声明,则不需要分配 "even" 和 "odd" 类。
代码:(Demo)
$food = ['steak', 'chicken', 'vegetables', 'stuff'];
foreach (array_chunk($food, 3) as $batch) {
echo "<ul><li>" , implode("</li><li>", $batch) , "</li></ul>";
}
输出:
<ul>
<li>steak</li>
<li>chicken</li>
<li>vegetables</li>
</ul>
<ul>
<li>stuff</li>
</ul>
整理好 html 后,您只需在 css.
中使用 nth-child()
逻辑
li:nth-child(odd) {
color: orange;
}
li:nth-child(even) {
color: green;
}
<ul>
<li>steak</li>
<li>chicken</li>
<li>vegetables</li>
</ul>
<ul>
<li>stuff</li>
</ul>
如果我有这样的数组:
$food = array('steak', 'chicken', 'vegetables', etc);
我如何遍历数组并显示 3 个列表中的每一项,并且每隔一行设置不同的样式?
喜欢:
Steak chicken vegetables
Stuff stuff stuff // style this one differently
Blah blah blah
Stuff stuff stuff // style differently
我知道我能做到:
foreach (array_chunk($food, 3, true) as $array) {
echo '<ul>';
foreach ($array as $item) {
echo '<li>'.$item.'</li>';
}
echo '</ul>';
}
只是不确定如何获取除此之外的每一行内容。
使用 foreach()
循环,将 key
添加到 as key => value
。然后你可以使用模 %
修改每隔一行。
foreach (array_chunk($food, 3, true) as $key => $array) {
$oddeven = ($key%2 == 1) ? ' class="even"' : '';
echo '<ul'.$oddeven.'>';
foreach ($array as $item) {
echo '<li>'.$item.'</li>';
}
echo '</ul>';
}
您可以使用 implode()
避免编写内部循环。如果您使用正确的 css 声明,则不需要分配 "even" 和 "odd" 类。
代码:(Demo)
$food = ['steak', 'chicken', 'vegetables', 'stuff'];
foreach (array_chunk($food, 3) as $batch) {
echo "<ul><li>" , implode("</li><li>", $batch) , "</li></ul>";
}
输出:
<ul>
<li>steak</li>
<li>chicken</li>
<li>vegetables</li>
</ul>
<ul>
<li>stuff</li>
</ul>
整理好 html 后,您只需在 css.
中使用nth-child()
逻辑
li:nth-child(odd) {
color: orange;
}
li:nth-child(even) {
color: green;
}
<ul>
<li>steak</li>
<li>chicken</li>
<li>vegetables</li>
</ul>
<ul>
<li>stuff</li>
</ul>