如何在具有某些条件的 foreach 循环中添加 css 类


How to add css class in foreach loop with some condition

我的代码中有这个循环:

$results = modleftHelper::getNear();
    $i = 0;
    foreach($results as $result){
        echo '<div class="filter-div" data-filter="'.$result->near.'">';
        echo '<label id="lbl_type'.$i.'" class="label_check" name="near" style="width:230px !important;">';
        echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
        echo '</div>';
    $i++;
}

我想在这个div 中每隔 3、6、9 等添加清晰的类:

<div class="filter-div" data-filter="'.$result->near.'">';

有什么想法或建议吗?谢谢。

试试这个:

$results = modleftHelper::getNear();
    $i = 0;
    foreach( $results as $result ) {
        if ( $i % 3 == 0 ) {
           echo '<div class="filter-div clear" data-filter="'.$result->near.'">';
        } else {
           echo '<div class="filter-div" data-filter="'.$result->near.'">';
        }
        echo '<label id="lbl_type'.$i.'" class="label_check" name="near" style="width:230px !important;">';
        echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
        echo '</div>';
    $i++;
}

尝试喜欢

$i = $j = 0;
foreach($results as $result){
    if($i++%3==0)
    {
      echo '<div class="filter-div clear" data-filter="'.$result->near.'">';          
    } else {
        echo '<div class="filter-div" data-filter="'.$result->near.'">';
    }
    echo '<label id="lbl_type'.$j++.'" class="label_check" name="near" style="width:230px !important;">';
    echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
    echo '</div>';
}

考虑 I 使用 $i 来检查条件,并使用循环变量$j

这将很有帮助

$results = modleftHelper::getNear();
    $i = 0;
    foreach($results as $result){
        $i++;
        //check the incremental value
        if($i%3==0)
        {
          echo '<div class="filter-div" data-filter="'.$result->near.'">';
      $i=0; 
        }else{
        //add youe false condition ghere
            echo '<div class="filter-div" data-filter="">';
    }
        echo '<label id="lbl_type'.$i.'" class="label_check" name="near" style="width:230px !important;">';
        echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
        echo '</div>';
}

试试这个:

$results = modleftHelper::getNear();
$i = 0;
foreach($results as $result){
    $clear = ($i+1 % 3) == 0 ? "clear" : "";
    echo '<div class="filter-div' . ' ' . $clear .'" data-filter="'.$result->near . '">';
    echo '<label id="lbl_type'.$i.'" class="label_check" name="near" style="width:230px !important;">';
    echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
    echo '</div>';
$i++;

}

$results = modleftHelper::getNear();
    $i = 0; 
    foreach($results as $result){
        if($i%3==0){$last_class="clear";}else{$last_class="";}
        echo '<div class="filter-div '.$last_class.'" data-filter="'.$result->near.'">';
        echo '<label id="lbl_type'.$i.'" class="label_check" name="near" style="width:230px !important;">';
        echo '<input name="school[]" class="chkBX" value="'.$result->latitude.','.$result->longitude.'" type="checkbox" />'.$result->school.'</label>';
        echo '</div>';
   $i++;
}

试试这段代码。