将数据从数组拉到<div>

时间:2016-05-10 08:00:20

标签: html css arrays

我有一个wordpress网站,我试图使用数组将css类应用于元素。

我的数组如下:

<?php

$classes = array(
    0 => 'highlight-color-1',
    1 => 'highlight-color-2',
    2 => 'highlight-color-3',
    3 => 'highlight-color-4');

?>

然后,我在以下四个不同元素上使用以下html:

<div class="q element element--content ******">

我需要遍历数组并应用css类来替换*****以便我得到类似的东西

<div class="q element element--content highlight-color-4"></div>
<div class="q element element--content highlight-color-3"></div>
<div class="q element element--content highlight-color-2"></div>
<div class="q element element--content highlight-color-1"></div>

上下文代码部分

// Displays Post Detail

if( $WP_Query->post_count > 0) :?>



<ul class="faq">

<?php while ($WP_Query->have_posts()) : $WP_Query->the_post();

    $classes = array(

    0 => 'highlight-color-1',
    1 => 'highlight-color-2',
    2 => 'highlight-color-3',
    3 => 'highlight-color-4');      

    ?>

    <div class="q element element--content ">

    <div class="faq_plus"><img src="http://drbarbaramariposa.com/wp-content/plugins/accordion-faq-plugin/plus.png" ></div>

    <div class="faq_title"><?php the_title(); ?></div>

    </div>

    <li class="a">

        <?php if ( function_exists('has_post_thumbnail') && has_post_thumbnail() ) {

                the_post_thumbnail('thumbnail'); 

              }

        ?>

        <?php the_content(); ?>

    </li>

<?php $i++; endwhile; ?>

</ul>

<?php endif; ?>

任何帮助都非常感激。

CHRIS

3 个答案:

答案 0 :(得分:0)

  

div和css类之间没有特定的关系   因为它只是一种颜色而被应用。如果页面生成6   它应该循环遍历数组以获得颜色1,颜色2,   颜色3,颜色4,颜色1,颜色2.这有意义吗?

您希望使用滚动计数器,该计数器根据while循环迭代对循环结构中的每个数组键值进行计数。基于您希望每个******更改为提到的数组元素值,您可以像这样构造它:

<?php 
$classes = array(
    0 => 'highlight-color-1',
    1 => 'highlight-color-2',
    2 => 'highlight-color-3',
    3 => 'highlight-color-4');
$counter = 0; 
$counterMax = count($classes); 

while ($WP_Query->have_posts()) : $WP_Query->the_post();
if($counter >= $counterMax) {
    $counter = 0;
}       
print "<div class='q element element--content ".$classes[$counter]."'>
 $counter++;
    ?>

    ...
<?php $i++; endwhile; 
 unset($counter, $counterMax);
 ?>

$i++做什么?

这样做是seta反向运行while循环的+1 ech时间,并且计数器是数组元素的引用键,如果计数器变得太大则会重置为零。

对此代码的假设是数组没有间隙,并且所声明的每个元素都需要$classes数组中的一个值。

答案 1 :(得分:0)

非常简单

foreach($classes as $class){ ?>
    <div class="q element element--content <?php echo $class?>></div>
   <?php } ?>

答案 2 :(得分:0)

您可以在foreach循环中使用str_replace()

foreach ($classes as $c){
    echo str_replace("******",$c,"<div class='q element element--content ******'></div>");
}