坚持使用简单的php循环逻辑
我有一个数组,其中可以有任意数量的元素。现在我想循环这个数组并创建一个设计,这样每个li可以有15个元素,下一组li将基于15个元素的倍数创建 现在我的数组正好有15个元素,我正在尝试创建的代码是2li,它应该只创建1li 可能是我的逻辑太差,或者我遗漏了什么 这是我的密码:-坚持使用简单的php循环逻辑,php,arrays,Php,Arrays,我有一个数组,其中可以有任意数量的元素。现在我想循环这个数组并创建一个设计,这样每个li可以有15个元素,下一组li将基于15个元素的倍数创建 现在我的数组正好有15个元素,我正在尝试创建的代码是2li,它应该只创建1li 可能是我的逻辑太差,或者我遗漏了什么 这是我的密码:- <?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?> <div class="slide"> <?
<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?>
<div class="slide">
<?php $design = '<ul class="slides"><li><div class="MainSlider">';
foreach($result as $key=>$row)
{
$design .= '<div class="MainSliderPic">'.$key.'</div>';
if(($key+1)% 15 == 0){
$design .= '</div></li><li><div class="MainSlider">';
}
if(count($result) == $key+1){
$design .= '</div></li></ul>';
}
}
echo $design;
?>
</div>
请尝试以下代码:
<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?>
<div class="slide">
<?php $design = '<ul class="slides"><li><div class="MainSlider">';
foreach($result as $key=>$row)
{
$design .= '<div class="MainSliderPic">'.$key.'</div>';
if((($key+1)% 15 == 0) && (count($result) != ($key+1))){
$design .= '</div></li><li><div class="MainSlider">';
}
if(count($result) == $key+1){
$design .= '</div></li></ul>';
}
}
echo $design;
?>
</div>
请尝试以下代码:
<?php $result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); ?>
<div class="slide">
<?php $design = '<ul class="slides"><li><div class="MainSlider">';
foreach($result as $key=>$row)
{
$design .= '<div class="MainSliderPic">'.$key.'</div>';
if((($key+1)% 15 == 0) && (count($result) != ($key+1))){
$design .= '</div></li><li><div class="MainSlider">';
}
if(count($result) == $key+1){
$design .= '</div></li></ul>';
}
}
echo $design;
?>
</div>
您可以使用来实现它:
$result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
$chunks = array_chunk($result, 15);
foreach ($chunks as $chunk) {
echo '<ul><li>';
echo implode('</li><li>', $chunk);
echo '</li></ul>';
}
您可以使用来实现它:
$result = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
$chunks = array_chunk($result, 15);
foreach ($chunks as $chunk) {
echo '<ul><li>';
echo implode('</li><li>', $chunk);
echo '</li></ul>';
}
不要在代码中混合打开和关闭标记。在它所属的地方分开做,例如
$design = '<ul class="slides">';
$n = 0;
foreach($result as $key=>$row) {
if ($n == 0)
$design .= '<li><div class="MainSlider">';
$design .= '<div class="MainSliderPic">' . $key . '</div>';
++$n;
if ($n == 15) {
$design .= '</div></li>';
$n = 0;
}
}
$design .= '</ul>';
echo $design;
不要在代码中混合打开和关闭标记。在它所属的地方分开做,例如
$design = '<ul class="slides">';
$n = 0;
foreach($result as $key=>$row) {
if ($n == 0)
$design .= '<li><div class="MainSlider">';
$design .= '<div class="MainSliderPic">' . $key . '</div>';
++$n;
if ($n == 15) {
$design .= '</div></li>';
$n = 0;
}
}
$design .= '</ul>';
echo $design;
如果$key+1%15==0{运算符%应该是问题所在,这意味着如果$key除以15的余数等于15,请执行此操作…&只需一点输入:您在第6行中写入了“$key”。…确实要输出键而不是值吗?可以通过将$key替换为$rowAs来完成。根据您的条件,您有15条记录,因此当您的模%条件为tru时e它关闭li并重新开始新的li,最后记录结束li和div,因此如果您有15、30、45…记录,您将得到一个额外的li,这是blank@Anant当前位置我在这里对每一个答案都投了赞成票,每一个答案都给了我学习的东西,所以请不要每天都用ping来反对,我并没有得到你想要的是的。我可能不知道,因为我是新来的,所以请接受mysite的道歉并停止ping。在得到答案后,您需要将一个答案标记为已接受。我不是在谈论追加投票,而是标记答案如果$key+1%15==0{运算符%应该是问题所在,这意味着如果$key除以15的余数等于15,请执行此操作…&只需一点输入:您在第6行中写入了“$key”。…确实要输出键而不是值吗?可以通过将$key替换为$rowAs来完成。根据您的条件,您有15条记录,因此当您的模%条件为tru时e它关闭li并重新开始新的li,最后记录结束li和div,因此如果您有15、30、45…记录,您将得到一个额外的li,这是blank@Anant当前位置我在这里对每一个答案都投了赞成票,每一个答案都给了我学习的东西,所以请不要每天都用ping来反对,我并没有得到你想要的是的。我可能不知道,因为我是新来的,所以请接受mysite的道歉并停止ping。在得到答案后,您需要将一个答案标记为已接受。我不是在谈论向上投票,而是标记答案