2012-03-17 97 views
0

我在下面有一些php代碼,我使用的是foreach。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所有其他分區類有一個類「項目」類第1格。

我在哪裏出錯了下面的代碼?

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

任何幫助/建議將非常感激。 感謝

+0

'$ key'有什麼值? – salathe 2012-03-17 10:14:02

回答

2

($key%2) ? "active" : "";將輸出active任何$key不是由2.參見維基百科的有關modulo operation頁面整除。

假設你使用$item數字指標,它們是連續的起點與0你可以只寫

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

有第一divclass活躍。

如果你不知道的$key值,你可以只使用一個標誌:

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

在第一次運行$firsttrue和你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 2012-03-17 11:46:53

0

$key%2是$關鍵每個奇數的價值,但我認爲情況將始終爲true。使用($key ==0)? "active" : ""只能獲得第一個活動。