2016-08-15 50 views
2
<?php 
    $classNames = array('margin-2', 'margin-4', 'margin-2', 'margin-8'); 

    if($productCatalogs != null){ 

    $i = 0; 

    foreach($productCatalogs as $productCatalog){ 

     $i++; 

     if($i % 2 == 0){ 

     // if $i is even number 
     echo '<li class="{ use classname here }"><a href="#">Link name</a></li>'; 

     } else { 

     // if $i is odd number 
     echo '<li><a href="#">Link name</a></li>'; 

     } 

    } 

    } 
?> 

作爲上面的代碼,我希望使用每個$ classNames值在foreach時,我只是偶數,就像第一個偶數數記錄使用{margin-2},下一個偶數number record使用{margin-4}。排版使用classname在foreach php

下面

是代碼的結果,我想,

<li></li> // if record is odd number, doesn't need class name 
<li class="margin-2"></li> 
<li></li> // if record is odd number, doesn't need class name 
<li class="margin-4"></li> 

<li></li> // if record is odd number, doesn't need class name 
<li class="margin-2"></li> 
<li></li> // if record is odd number, doesn't need class name 
<li class="margin-8"></li> 

<li></li> // if record is odd number, doesn't need class name 
<li class="margin-2"></li> 
<li></li> // if record is odd number, doesn't need class name 
<li class="margin-4"></li> 

... 

回答

2

只需使用一個計數器變量作爲你的陣列和增量索引,當你發現一個更number.Also如果你有你需要檢查很多元素你到達陣列的末端並重置你的計數器。像這樣的東西:

<?php 
    $classNames = array('margin-2', 'margin-4', 'margin-2', 'margin-8'); 

    if($productCatalogs != null){ 

    $i = 0; 
    $even_counter=0; 

    foreach($productCatalogs as $productCatalog){ 

     $i++; 

     if($i % 2 == 0){ 

     // if $i is even number 
    echo '<li class="'.$classNames[$even_counter].'"><a href="#">Link name</a></li>'; 

    //when we reach the end of the array we reset our counter to 0 
    $even_counter=($even_counter+1==count($classNames))?0:$even_counter+1; 
     } else { 

     // if $i is odd number 
     echo '<li><a href="#">Link name</a></li>'; 

     } 

    } 

    } 
?> 
+0

非常感謝你,它解決了 – David