<?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>';
}
}
}
?>
和上面的代码一样,当$i是偶数时,我想在foreach中使用每个$classNames值,比如第一个偶数记录使用{margin-2},下一个偶数记录使用{margin-4}。
下面是我想要的代码结果
<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>
...
只需使用计数器变量作为数组中的索引,并在找到偶数时增加。另外,如果你有很多元素,你需要检查你是否到达了数组的末尾,并重置你的计数器。像这样:
<?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>';
}
}
}
?>