2013-02-05 4 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 기꺼이 도와 드리겠습니다. –