I am dynamically populating a list based on what is in the database, and I would like each list item to have a unique class name - something simple, for example the first
<?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>
What extra code do I need, to give each list item a unique class? As a side note, I am very much a beginner when it comes to php, so please let me know if you need any more information.
You can use for
loop:
<?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>";
}?>
Result will be:
<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>
and so on.
You can add $counter
variable to get the incremented value and assign it to class.
<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>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.