2012-11-16 5 views
0

내 CodeIgniter for-loop에서 마지막 루프를 잡으려고합니다. 나는 < hr />을 모든 뉴스 항목 아래에 생성하려고 시도하지만 마지막 항목은. 이건 내 코드입니다 :CodeIgniter의 마지막 루프 foreach

<table class="news"> 
<?php foreach($news as $news_item): ?> 
    <tr> 
     <td class="headline"><?php echo $news_item['title']; ?></td> 
    </tr> 
    <tr> 
     <td class="text"><?php echo $news_item['text']; ?></td> 
    </tr> 
    <tr> 
     <td><hr /></td> 
    </tr> 
<?php endforeach; ?> 
</table> 
+0

그리고 질문이 있으십니까? 그렇지 않다면 .. –

답변

1

Уou는 다음과 같이 시도 할 수 있습니다 :

<?php for($i = 0, $lastIDX = count($news)-1; $i<=$lastIDX; $i++): ?> 
    <!-- html code ... $news_item is $news[$i] now --> 
    <? if ($i !== $lastIDX) : ?> 
     <tr> 
      <td><hr /></td> 
     </tr> 
    <?php endif; ?> 
<?php endfor; ?> 

을하지만 CSS 사용하는 것이 좋을 것이다 : 마지막 아이 선택기를.

+0

그러면 CSS 선택기로 어떻게 끝났습니까? :-) 모든 HR에 클래스 = "hr"추가 .news .hr : last-child { display : none; } CSS가 작동하지 않으므로 –

+0

hr을 잊어서 border-bottom을 사용하십시오 : solid 1px # 000; 일부 거리를 더하기 위해 패딩 사용 – allen213

0

반복하면서 미리 배열의 마지막 키를 확인하고 그것을 현재의 비교 :

또한
$keys = array_keys($news); 
$last_key = end($keys); 
foreach ($news as $news_key => $news_item) { 
    if ($news_key == $last_key) { 
     // at the last item 
    } else { 
     // not at the last item 
    } 
} 

당신이 사전에 배열의 요소를 계산하고있을 수 있습니다 매 라운드마다 증가하는 루프 내부의 카운터로 끝날 지 여부를 알 수 있습니다. $이 마지막으로 배열 XD의 마지막 배열

$last = end($news); 
<table class="news"> 
<?php foreach($news as $news_item): ?> 
    <tr> 
     <td class="headline"><?php echo $news_item['title']; ?></td> 
    </tr> 
    <tr> 
     <td class="text"><?php echo $news_item['text']; ?></td> 
    </tr> 
    <tr> 
     <td><?=(($last == $news_item)?"":"<hr />")?></td> 
    </tr> 
<?php endforeach; ?> 
</table> 

:

0

당신은 솔루션으로이 중 하나를 사용할 수 있습니다.