2

我对 PHP 很陌生,正在研究使用array_chunk()将数组拆分为三个部分以将其显示为三列列表。假设我有一个这样的数组

 $input_array = array('a', 'b', 'c', 'd', 'e', 'f');
 $chunks = array_chunk($input_array, 3, true));

我想输出如下内容:

<div class="left">
 <ul>
  <li>a</li>
  <li>b</li>
 </ul>
 </div>

<div class="middle">
 <ul>
  <li>c</li>
  <li>d</li>
 </ul>
 </div>

<div class="right">
 <ul>
  <li>e</li>
  <li>f</li>
 </ul>
</div>

我在这里看到了一些非常有用的示例,但没有一个示例显示如何 foreach 循环原始数组的每个块以放置在 html/css 中您需要的位置。

这是 array_slice 的工作吗?但是如果我的数组是动态填充的并且我不知道在给定时间它会有多大呢?

谢谢!

4

2 回答 2

6
$div_class = array("left","middle","right"); 
$input_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunks = array_chunk($input_array, 2);

foreach($chunks as $i => $mychunk)
{
    echo "<div class=\"$div_class[$i]\">";
    echo "<ul>";

    foreach($mychunk as $newchunk) 
    {
    echo "<li>";
    echo $newchunk;
    echo "</li>";
    }

    echo "</ul>";
    echo "</div>";
}

输出 -

<div class="left">
<ul>
<li>a</li>
<li>b</li>
</ul>
</div>
<div class="middle">
<ul>
<li>c</li>
<li>d</li>
</ul>
</div>
<div class="right">
<ul>
<li>e</li>
<li>f</li>
</ul>
</div>
于 2013-02-05T04:15:52.487 回答
1

您的array_chunk($input_array, 3, true))代码返回具有三个值的块,但根据您期望的输出,您必须设置 array_chunk($input_array, 2, true)

点击链接以了解有关array_chunk()的更多信息

$input_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunks = array_chunk($input_array, 2, true);

//print_r($chunks);
for( $i=0;$i<count($chunks);$i++ ){
   echo "<div>\n";
   echo "<ul>\n";
   foreach( $chunks[$i] as $k=>$v ){

     echo "<li>$v</li>\n";

   }
  echo "</ul>\n";
  echo "</div>\n\n";
 }

查看输出检查以下链接http://codepad.org/8K1luela

于 2013-02-05T04:14:53.953 回答