[英]problems with a PHP array
我首先要说的是,我确实是PHP的新手,我需要解决一个问题,我知道逻辑,但是在语法上我已经死了。
就是这种情况。
我需要创建一个wordpress循环,该循环将显示具有3种不同颜色的span类的图像,每个循环1个,这样,0 =绿色,1 =蓝色,2 =粉色。
由于我有3种颜色,输出数量为X,所以我考虑创建一个从0到2的数组,根据我描述的颜色分配一个值,然后创建一个条件,如果i> 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与数组进行比较的部分。
我将不胜感激!
提前致谢。
此代码存在一些问题 (以及一些建议)。
$i = 0;
在while循环内意味着它总是== 0
$array
而不是一项 如何解决 :
$i = 0;
在while循环之外(因此在循环之前定义) echo $array[$i]
来回显您要查找的商品ID $i / 3
的余数并将其用作索引 你也可以
$colors = array('green', 'blue', 'pink');
行为相同-这与PHP使用默认索引(从0开始) $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;
?>
首先,您每次运行循环时都要重新声明$array
。 在启动while
循环之前将其放入。
其次,您需要使用索引来访问数组中的元素:
<span class="<?php echo $array[$i] ?>;">Title</span>
第三,您需要将$i = 0
放在while
循环之前 。 这里发生的是$i
变量每次都重置为0
。
您要打印整个$array
而不是单个数组元素(即$array[$i]
),同时还要在while
循环内重置计数器( $i = 0
):
<?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;
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.