首页 > 解决方案 > 将剩余物品放在新行中

问题描述

所以我可以在网页中每行显示 3 个项目。但是,如果有额外的项目,就会出现问题。假设我有一个包含 items 的数组1,2,3,4,5,6,7,8,9,10,11。我可以显示项目 1 到 9。但是由于索引错误而无法显示,如果我添加10,一切都会好起来的。1112

我想要的是从中显示。

<div class='row-0'>
<p>1</p>
<p>2</p>
<p>3</p>
</div>
<div class='row-1'>
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<div class='row-2'>
<p>7</p>
<p>8</p>
<p>9</p>
</div>

对此:

<div class='row-0'>
<p>1</p>
<p>2</p>
<p>3</p>
</div>
<div class='row-1'>
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<div class='row-2'>
<p>7</p>
<p>8</p>
<p>9</p>
</div>
<div class='row-3'>
<p>10</p>
<p>11</p>
</div>

到目前为止,这是我的演示代码:

<?php

$arr = array(1,2,3,4,5,6,7,8,9,10);

$row=0;
$i=0;

while(true){
    echo "<div class='row-".$row."'>\n";
    while(true){
        echo "<p>".$arr[$i]."</p>\n";
        $i++;
        if($i%3===0){
            break;
        }
    }
    echo "</div>\n";
    $row++;
    if($arr[$i]==count($arr)){
        break;
    }
}
?>

有小费吗?感谢您的阅读。

标签: php

解决方案


您应该只检查数组内部。并使用 2 个循环。行数的第一个循环。第二个循环用于元素的数量以及它们是否存在于数组中。

<?php

$numbers = array(1,2,3,4,5,6,7,8,9,10,11);
$number_of_rows = ceil(count($numbers) / 3);

$counter = 0;


for($i = 0 ; $i < $number_of_rows; $i++){
    echo "<div class='row-".($i)."'>\n";
        for($item = 3; $item > 0; $item--){
            if(array_key_exists($counter , $numbers)){
                echo "<p>".$numbers[$counter]."</p>\n";
            }
            $counter++;
        }
    echo "</div>\n";
}

?>

推荐阅读