我想根据以下条件应用css类


I want to apply css class as per below condition

我想根据以下条件应用css类,但在应用此代码后,每个内容都会重复8次,如果我在div之前完成for循环,则不会应用css类。

    <?php $size=count($Spacategories);          
   for($i=0;$i<8;$i++){
    if($i==0 || $i==5){ ?>
    <li class="valign">
    <?php } elseif($i==1 || $i==7) { ?>
    <li class="lalign">
    <?php  } elseif($i==2 || $i==6) { ?>
    <li class="talign">
    <?php } else { ?>
    <li class="ralign">
    <?php } ?>
        <div class="image">
            <img src="<?php echo $spacategory['thumb']; ?>" title="<?php echo $spacategory['name']; ?>" alt="<?php echo $spacategory['name']; ?>" />
        </div>
       <div class="text">
            <h3><?php echo $spacategory['name']; ?></h3>
            <p><?php echo substr($spacategory['description'],0,150); ?></p>
            <a href="<?php echo $spacategory['href']; ?>" class="learmmore"><?php echo $text_view_more; ?></a>
        </div>   
       </li>   
      <?php  } } ?>

更改的所有实例

$spacategory 

$Spacategories[$i]

这会解决问题。

此外,我看不出$text_view_more中填充了什么。您可能应该将其更改为$Spacategories中的某个数据点?

最后,似乎你需要根据类别的数量进行循环,所以改变

for($i=0;$i<8;$i++){

for($i=0;$i<$size;$i++){

在代码中,$spacategory不是每次迭代中索引为$i$spacategories中的项。您应该启动for:

$spacategory = $spacategories[$i];

或者使用foreach

<?php
$classesIndexMap = array(
    0 => 'valign',
    1 => 'lalign',
    2 => 'talign',
    5 => 'valign',
    6 => 'talign',
    7 => 'lalign',
);
$html_view_more = htmlspecialchars($text_view_more, ENT_NOQUOTES, 'UTF-8');
?>     
<?php foreach($spacategories as $i => $spacategory) : ?>
<li class="<?= isset($spacategory[$i]) ? $spacategory[$i] : 'ralign' ?>">
    <div class="image">
        <img src="<?= htmlspecialchars($spacategory['thumb'], ENT_QUOTES, 'UTF-8') ?>"
             title="<?= htmlspecialchars($spacategory['name'], ENT_QUOTES, 'UTF-8') ?>"
             alt="<?= htmlspecialchars($spacategory['name'], ENT_QUOTES, 'UTF-8') ?>" />
    </div>
    <div class="text">
        <h3><?= htmlspecialchars($spacategory['name'], ENT_NOQUOTES, 'UTF-8') ?></h3>
        <p><?= substr($spacategory['description'],0,150); ?></p>
        <a href="<?= htmlspecialchars($spacategory['href'], ENT_QUOTES, 'UTF-8'); ?>"
           class="learmmore"><?= $html_view_more ?></a>
    </div>   
</li>
<?php endforeach; ?>