【发布时间】:2013-02-03 11:40:07
【问题描述】:
我有一个名为$columns 的字符串,它动态地获取一个从1 到7 的值。我想创建一个<td></td> 的循环,不管$columns 的值是多少倍。知道我该怎么做吗?
【问题讨论】:
我有一个名为$columns 的字符串,它动态地获取一个从1 到7 的值。我想创建一个<td></td> 的循环,不管$columns 的值是多少倍。知道我该怎么做吗?
【问题讨论】:
for ($k = 0 ; $k < $columns; $k++){ echo '<td></td>'; }
【讨论】:
这是实现此目的的更易读的方法:
foreach(range(1,$columns) as $index) {
//do your magic here
}
【讨论】:
range(),然后在每次迭代中使用其结果吗?
如果只需要使用重复次数:
for ($i = 0; $i < 5; $i++){
// code to repeat here
}
【讨论】:
我喜欢这种方式:
while( $i++ < $columns ) echo $i;
请记住,如果 $columns 为 5,这将运行 5 次(不是 4 次)。
编辑:这里$i 的初始状态似乎有些混乱。如果您愿意,欢迎您提前初始化$i=0。但是这不是必需的,因为 PHP 是一个非常有用的引擎,并且会自动为您执行此操作(如果您碰巧启用了这些,它会发出通知)。
【讨论】:
$i = 0;,所以上面多了一行
如果$columns 是string,您可以转换为int 并使用简单的for 循环
for ($i=1; $i<(int)$columns; $i++) {
echo '<td></td>';
}
【讨论】:
PHP 中有一个str_repeat() 函数,它可以多次重复一个字符串。您的问题的解决方案是:
str_repeat( '<td></td>', $columns );
【讨论】:
for loop 可以工作:
for ($i = 0; $i < $columns; $i++) {
...
}
【讨论】:
只是重复 $n 次? ...如果不介意 $n 倒退... 优点是您可以在开头看到/配置“次”
$n = 5;
while (--$n >= 0)
{
// do something, remember that $n goes backwards;
}
【讨论】:
您可以通过 for 循环轻松运行它来实现此目的
$myData = array('val1', 'val2', ...);
for( $i = 0; $i < intval($columns); $i++)
{
echo "<td>" . $myData[$i] . "</td>";
}
【讨论】:
为什么要使用逻辑,不要浪费那些 CPU 周期!
<td colspan="<?php echo $columns; ?>"></td>
【讨论】: