使用PHP动态为列表项<li>提供一个唯一的类

时间:2019-05-27 05:52:05

标签: php class dynamic

我正在根据数据库中的内容动态填充列表,并且我希望每个列表项都具有唯一的类名-简单一些,例如第一个

  • 具有item-1类,第二个
  • 具有class-2类。 这是我用来创建列表的php代码:

     <?php
              $metas=trim(get_post_meta($post->ID,'hike_meta',true),'');
              $metas_arr=explode("\n",$metas);
              $metas1=array_slice($metas_arr,0,3);
              $metas2=array_slice($metas_arr,3,3);
    ?>
    
    <div class="loca_meta">
        <ul>
           <?php foreach($metas1 as $meta){
                 list($k, $v) = explode('|', $meta);
                 echo "<li><span class='bold'>$k</span>:<br>$v</li>";
              }?>
         </ul>
         </div>
         <div class="loca_meta">
            <ul>
              <?php foreach($metas2 as $meta){
                    list($k, $v) = explode('|', $meta);
                     echo "<li><span class='bold'>$k</span>:<br>$v</li>";
               }?>
            </ul>
         </div>
    

    要给每个列表项一个唯一的类,我需要什么额外的代码?附带说明一下,关于php,我非常新手,因此,如果您需要更多信息,请告诉我。

  • 2 个答案:

    答案 0 :(得分:1)

    您可以使用for循环:

       <?php for($i = 0; $i < count($metas1); $i++){
             list($k, $v) = explode('|', $metas[$i]);
             echo "<li><span class="bold item-".$i+1.">$k</span>:<br>$v</li>";
          }?>
    

    结果将是:

    <li><span class="bold item-1"><!-- content --></span>:<br><!-- content --></li>
    <li><span class="bold item-2"><!-- content --></span>:<br><!-- content --></li>
    <li><span class="bold item-3"><!-- content --></span>:<br><!-- content --></li>
    

    以此类推。

    答案 1 :(得分:1)

    您可以添加$counter变量以获取增量值并将其分配给类。

    <div class="loca_meta">
        <ul>
           <?php $counter = 0; foreach($metas1 as $meta){
                 list($k, $v) = explode('|', $meta);
                 echo "<li><span class='bold <?php echo "item_".$counter ?>'>$k</span>:<br>$v</li>";
              $counter++;
            }?>
         </ul>
         </div>
         <div class="loca_meta">
            <ul>
              <?php foreach($metas2 as $meta){
                    list($k, $v) = explode('|', $meta);
                     echo "<li><span class='bold <?php echo "item_".$counter ?>'>$k</span>:<br>$v</li>";
               $counter++;
              }?>
            </ul>
         </div>