2016-09-20 19 views
-2

我從數據庫中獲取了一些項目,我想用特定的html類名顯示它。使用php輸出具有特定引導類名稱的產品

例如::

<?php 
$itemsFromDatabase = array(
    array('img' => 'image-1.jpg'), 
    array('img' => 'image-2.jpg'), 
    array('img' => 'image-3.jpg'), 
    array('img' => 'image-4.jpg'), 
    array('img' => 'image-5.jpg'), 

    array('img' => 'image-6.jpg'), 
    array('img' => 'image-7.jpg'), 
    array('img' => 'image-8.jpg'), 
    array('img' => 'image-9.jpg'), 
    array('img' => 'image-10.jpg'), 

    // etc... 
); 

?> 

我想使用PHP的foreach輸出HTML結果如下圖所示::

<li class="col-md-6"><img src="image-1.jpg" /></li> 
<li class="col-md-6"><img src="image-2.jpg" /></li> 

<li class="col-md-4"><img src="image-3.jpg" /></li> 
<li class="col-md-4"><img src="image-4.jpg" /></li> 
<li class="col-md-4"><img src="image-5.jpg" /></li> 

<li class="col-md-6"><img src="image-6.jpg" /></li> 
<li class="col-md-6"><img src="image-7.jpg" /></li> 

<li class="col-md-4"><img src="image-8.jpg" /></li> 
<li class="col-md-4"><img src="image-9.jpg" /></li> 
<li class="col-md-4"><img src="image-10.jpg" /></li> 

.... // will automatic use col-md-6 again when got image-11.jpg in future ... 
+0

太棒了,你邏輯你在這裏應用得到這樣的結果?你有沒有想過? –

+0

邏輯:每三個記錄使用col-md-4三次。比重複 – devpro

+0

請先詢問OP代碼他試過的代碼是什麼,然後試着給出答案 –

回答

4

這裏是邏輯實施的情況 聲明兩個變量,分配$size = 6,其爲所述第一大小,並檢查大小等於12通過與$times相乘,如果是則剛復位$times和還用替代品更新$size

$size = 6; 
$times = 0; 
foreach($itemsFromDatabase as $val){ 
    if(($size * $times++) == 12){ 
     $size = ($size == 6) ? 4 : 6; 
     $times = 1; 
    } 
    echo '<li class="col-md-'.$size.'">'.$val['img'].'</li>'; 
} 
+1

效率更高。 +10 –

+1

不錯的一個:) ..。 – devpro

2

使用了幾個計數器,當得到對方達到預定復位量似乎給出了正確的結果。

$items = array(
    array('img' => 'image-1.jpg'), 
    array('img' => 'image-2.jpg'), 
    array('img' => 'image-3.jpg'), 
    array('img' => 'image-4.jpg'), 
    array('img' => 'image-5.jpg'), 
    array('img' => 'image-6.jpg'), 
    array('img' => 'image-7.jpg'), 
    array('img' => 'image-8.jpg'), 
    array('img' => 'image-9.jpg'), 
    array('img' => 'image-10.jpg'), 
    array('img' => 'image-11.jpg'), 
    array('img' => 'image-12.jpg'), 
    array('img' => 'image-13.jpg'), 
    array('img' => 'image-14.jpg'), 
    array('img' => 'image-15.jpg') 
); 

$i=0;$j=0; 
foreach($items as $item){ 
    $img=$item['img']; 
    if($i < 2){ 
     $class='col-md-6'; 
     $i++; 
     if($j>=3)$j=0; 
    } else { 
     $class='col-md-4'; 
     $j++; 

     if($j >= 3){ 
      $j=0; $i=0; 
     } 
    } 

    echo "<li class='{$class}'><img src='{$img}' /></li>"; 
} 
+0

簡單易行 – devpro

相關問題