2013-02-05 29 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很高興爲您提供幫助。 –