2012-03-17 3 views
0

나는 foreach를 사용하고있는 PHP 코드가 아래에있다. PHP foreach div 클래스 문제

<div class="carousel-inner"> 
    <?php if(count($items)): ?> 
    <?php foreach($items as $key=>$item) : ?>  
     <div class="item <?php echo ($key%2) ? "active" : ""; ?>"> 
     <?php 
       $extra_imagefilename = md5("Image".$item->id); 
       $extra_imagepath = 'media/k2/items/src/'.$extra_imagefilename.'.jpg'; 
       preg_match_all('/img src="([^"]+)"/i', $item->introtext . $item->fulltext, $matches); ?> 
       <?php if(@file_exists($extra_imagepath)) { ?> 
       <img src="<?php echo $extra_imagepath; ?>" style="alt="<?php echo $item->title; ?>" title="<?php echo $item->title; ?>" /> 
       <?php } ?> 
     </div> 
    <?php endforeach; ?>       
    <?php endif; ?> 
</div> 

나는 "항목"의 클래스를 갖고 "항목 활성화"와 foreach는 다른 모든 사업부 클래스라는 클래스를 가지고 나타나는 첫번째 DIV가 필요합니다.

아래 코드는 어디에서 잘못 되었습니까?

<?php if(count($items)): ?> 
    <?php foreach($items as $key=>$item) : ?>  
     <div class="item <?php echo ($key%2) ? "active" : ""; ?>"> 

아무 도움이나 조언을 부탁드립니다. 감사

+0

'$ key'에는 어떤 값이 있습니까? – salathe

답변

2

($key%2) ? "active" : "";modulo operation에 대한 2 참조 위키 백과의 페이지로 나누어 아닌 모든 $key에 대한 의지 출력 active.

은 가정 당신은 $item에 대한 숫자 인덱스를 사용하고 그들은 0와 연속 시작 그냥

<div class="item <?php echo ($key == 0) ? "active" : ""; ?>"> 

처음 div 가지고 쓸 수 class 활성화해야합니다.

당신이 $key의 가치에 대해 알고하지 않으면 그냥 플래그를 사용할 수 있습니다 true 될 것이다 첫 번째 실행 $first

<?php $first = true; foreach($items as $key=>$item) : ?>  
    <div class="item <?php if ($first){echo "active"; $first = false;} ?>"> 

을하고 div이 클래스 active입니다 가져옵니다. 다른 실행에서는 false이됩니다.

1

수표로 재설정 기능을 사용할 수 있습니다.

<?php if(count($items)): ?> 
    <?php foreach($items as $key=>$item) : ?>       
    <div class="item <?php echo ($item==reset($items) ? "active" : ")"; ?>"> 
+0

코드에서 무한 루프가 발생하지 않도록 특별히 필요하면이 작업을 수행하지 마십시오. – Jason

0

$key%2은 $ 키의 모든 홀수 값하지만 조건이 항상 true로 평가 것이라 생각합니다. ($key ==0)? "active" : ""을 사용하여 첫 번째 활성 만 활성화하십시오.