2013-02-05 32 views
2

我对PHP很新颖,并且正在研究使用array_chunk()将数组拆分为三部分以将其显示为三列列表。比方说,我有这样的访问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> 

我已经看到了一些really helpful examples在这里,但没有说明如何foreach循环的每个块原始数组放置在您的html/css中需要的地方。

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

谢谢!

+0

我误解了文档,并认为我的3值意味着3个块,但现在看到我错了。 –

回答

5
$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> 
+1

哇!消化它的工作方式需要一点时间,但它确实! –

+0

@ErikBerger很高兴看到它适用于你:) +1 – swapnesh

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

+0

这个工作除了它没有把每个“块”放在命名的div(左,中,右)。虽然仍然有帮助! –

+0

@ErikBerger很高兴为您提供帮助。 –