Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
坚持使用简单的php循环逻辑_Php_Arrays - Fatal编程技术网

坚持使用简单的php循环逻辑

坚持使用简单的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"> <?

我有一个数组,其中可以有任意数量的元素。现在我想循环这个数组并创建一个设计,这样每个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 $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。在得到答案后,您需要将一个答案标记为已接受。我不是在谈论向上投票,而是标记答案