Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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_Html_Arrays - Fatal编程技术网

PHP:将单个数组输出为多个列表

PHP:将单个数组输出为多个列表,php,html,arrays,Php,Html,Arrays,我有一个长度未知的数组: $array = array('1', '2', '3', '4', '5', '6', '7', '8' ...); 我需要将这个数组输出为多个列表,其中每3个数组条目创建一个新列表 <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <li>4</li> <li

我有一个长度未知的数组:

$array = array('1', '2', '3', '4', '5', '6', '7', '8' ...);
我需要将这个数组输出为多个列表,其中每3个数组条目创建一个新列表

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>

<ul>
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>

<ul>
  <li>7</li>
  <li>8</li>
</ul>
请注意,我需要关闭最后一个列表,即使它不包含3个列表项

以下是我的尝试:

<?php for ($i = 0; $i < count($rows); ++$i): ?>

  <?php if (($i % 3) == 0): ?>
    <ul>
  <?php endif; ?>
    <li><?php print $rows[$i]; ?></li>
  <?php if (($i % 3) == 2): ?>
    </ul>
  <?php endif; ?>

<?php endfor; ?>
尝试使用foreach循环

$array = array('1', '2', '3', '4', '5', '6', '7', '8');
$i=1;
foreach($array as $a) {
  if($i == 1) echo '<ul>';
  echo '<li>'.$a.'</li>';
  if($i % 3 == 0) {
    echo '</ul>';
    echo '<ul>';
  }
  if($i == count($array))
    echo '</ul>';
  $i++;
}
输出:-

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
尝试使用foreach循环

$array = array('1', '2', '3', '4', '5', '6', '7', '8');
$i=1;
foreach($array as $a) {
  if($i == 1) echo '<ul>';
  echo '<li>'.$a.'</li>';
  if($i % 3 == 0) {
    echo '</ul>';
    echo '<ul>';
  }
  if($i == count($array))
    echo '</ul>';
  $i++;
}
输出:-

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
您可以为此任务使用数组块。把它们分成三块:

$array = range(1, 8);
$unknown_length = array_chunk($array, 3); // cut by batches of three
foreach($unknown_length as $ul) {
    echo '<ul>';
    foreach($ul as $li) {
        echo "<li>$li</li>";
    }
    echo '</ul>';
}
您可以为此任务使用数组块。把它们分成三块:

$array = range(1, 8);
$unknown_length = array_chunk($array, 3); // cut by batches of three
foreach($unknown_length as $ul) {
    echo '<ul>';
    foreach($ul as $li) {
        echo "<li>$li</li>";
    }
    echo '</ul>';
}

这应该适合您:

在这里,我将数组拆分为3块。然后我使用foreach循环遍历每个innerArray,并使用


这应该适合您:

在这里,我将数组拆分为3块。然后我使用foreach循环遍历每个innerArray,并使用


为什么不在HTML中使用类似模板的替代循环语法呢?当然,如果您使用的是某种视图

<? for ($i=0; $i<count($a); $i+=3): ?>
    <ul>
    <? for ($j=$i; $j<min(count($a), $i+3); $j++): ?>
        <li><? echo $a[$j]; ?></li>
    <? endfor; ?>
    </ul>
<? endfor; ?>

为什么不在HTML中使用类似模板的替代循环语法呢?当然,如果您使用的是某种视图

<? for ($i=0; $i<count($a); $i+=3): ?>
    <ul>
    <? for ($j=$i; $j<min(count($a), $i+3); $j++): ?>
        <li><? echo $a[$j]; ?></li>
    <? endfor; ?>
    </ul>
<? endfor; ?>

我试着向我们展示你的尝试,我想现在你得到了各种各样的答案,而且都很有趣,仔细研究每个答案,选择一个适合你的答案!我试着向我们展示你的尝试,我想现在你得到了各种各样的答案,而且都很有趣,仔细研究每个答案,选择一个适合你的答案!数组和非常有意义的变量名,这是code@Rizier123事实上,我并没有想过,只是在打字的时候我脑子里突然冒出来的第一件事。lol:D.array\u chunk和非常有意义的变量名,这是code@Rizier123事实上,我并没有想过,只是在打字的时候我脑子里突然冒出来的第一件事。好吧,有一件事我必须承认。你写了唯一一个我从未想到的答案,我也没想到,但这是一个非常有创意的解决方案。谢谢!它不是非常先进或结构复杂,但它可以工作,并且很容易理解@好吧,有一件事我必须承认。你写了唯一一个我从未想到的答案,我也没想到,但这是一个非常有创意的解决方案。谢谢!它不是非常先进或结构复杂,但它可以工作,并且很容易理解@里泽尔123