我将开始说我在PHP上真的是一个菜鸟,我需要解决一个问题,我知道逻辑,但是在语法上我已经死了。
情况就是这样。
我需要创建一个wordpress循环,它将显示带有3种不同颜色的span类的图像,每个循环1个,所以它变为0 =绿色,1 =蓝色,2 =粉红色。
由于我有3个颜色X个输出,我想创建一个从0到2的数组,根据我描述的颜色分配一个值,然后创建一个条件,如果我> 2,然后i = 0.
有了这个,我只会在我的span类上回显数组值,这应该可以解决问题。
我需要帮助的是为此创建语法,到目前为止,这就是我所拥有的:
<?php while ( have_posts() ) : the_post(); $i = 0 ?>
<?php
$array = array(
0 => 'green',
1 => 'blue',
2 => 'pink',
);
?>
<span class="<?php echo $array ?>;">Title</span>
<?php
$i++;
?>
<?if ($i > 2) { $i=0; } endif; ?>
<?php endwhile; ?>
我错过了我应该将计数器i与数组进行比较的部分。
我很感激任何帮助!
提前致谢。
答案 0 :(得分:2)
此代码存在一些问题(以及一些建议)。
$i = 0;
,这意味着它始终是== 0
$array
而不是一个项目如何修复:
$i = 0;
移到while循环之外(因此它在循环之前定义)echo $array[$i]
来回显您正在寻找的商品ID $i / 3
的余数并将其用作索引你也可以
$colors = array('green', 'blue', 'pink');
上定义数组,其行为相同 - 这适用于PHP使用从0开始的默认索引</ li>
$colors
等变量代替$array
来更清楚地了解正在发生的事情<?php
标签的数量以使事情更加清晰$colors
)请参阅下面的完整代码
<?php
$colors = array(
0 => 'green',
1 => 'blue',
2 => 'pink',
);
$i = 0;
while ( $loop->have_posts() ) : $loop->the_post();
?>
<span class="<?php echo $colors[$i % 3] ?>;">Title</span>
<?php
$i++;
endwhile;
?>
进一步简化
<?php
$colors = array('green', 'blue', 'pink');
$i = 0;
while ( $loop->have_posts() ) : $loop->the_post();
?>
<span class="<?php echo $colors[$i % 3] ?>;">Title</span>
<?php
$i++;
endwhile;
?>
答案 1 :(得分:2)
首先,每次运行循环时都要重新声明$array
。在开始while
循环之前将其放入。
其次,您需要使用索引来访问数组中的元素:
<span class="<?php echo $array[$i] ?>;">Title</span>
第三,您需要将$i = 0
放在 while
循环之前。这里发生的事情是$i
变量每次都被重置为0
。
答案 2 :(得分:1)
您正在打印整个$array
而不是单个数组元素($array[$i]
),您还要在$i = 0
循环中重置计数器(while
):
<?php
// a little bit cleaned up version of your code
$array = array(
0 => 'green',
1 => 'blue',
2 => 'pink',
);
$i = 0;
while ( $loop->have_posts() ) : $loop->the_post();
?>
<span class="<?php echo $array[$i] ?>;">Title</span>
<?php
$i++;
if ($i > 2) { $i=0; }
endwhile;
?>