我有一个工作的php代码,它使一个数字循环从1开始计数。
<?php
$i = 0; // define number
while (have_rows('the_rows')) : row(); // begin while loop
$i++; // increase increment with each loop ?>
<div>
<?php echo $i; // outputting the number ?>
</div>
<?php
endwhile; // end while loop
?>
此代码将遍历所有可用条目,并在没有更多条目后停止。它将对每个$i
输出进行计数。
例如,它可能如下所示:
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
没有预先设定的数字。它可以是任何数字,包括1、5、74或938个条目。循环将继续到所有条目,并在所有条目完成后停止。
如果我从一个开始,这很好用。但由于数字不是固定的,向后循环稍微困难一点。
我如何反转这个循环,以便首先,它倒数(例如,如果有7行,它从7开始倒数),并从最后一行开始反转循环?
例如:
<div>7</div>
<div>6</div>
<div>5</div>
<div>4</div>
<div>3</div>
<div>2</div>
<div>1</div>
发布于 2018-08-15 05:13:10
如果您不知道数据的长度,请获取数据的长度,然后反向打印出来。
<?php
$i = 0;
while(has_rows('the_rows')):
row();
$i++;
endwhile;
while($i > 0):
?>
<div><?php echo $i--; ?></div>
<?php endwhile; ?>
发布于 2018-08-15 05:19:30
如果事先不知道行数,也不需要两次循环,那么您有几个选择。
一种方法是构建一个数组并反转它:
<?php
$i = 0;
while (have_rows('the_rows')) : row();
$i++;
$html[] = "
<div>
$i
</div>";
endwhile;
echo implode(array_reverse($html));
或者将每个值添加到一个数组中:
<?php
$i = 0;
while (have_rows('the_rows')) : row();
$i++;
$html = "
<div>
$i
</div>";
array_unshift($data, $html);
endwhile;
echo implode($data);
或者将新字符串添加到现有字符串的前面:
<?php
$i = 0;
$html = "";
while (have_rows('the_rows')) : row();
$i++;
$html = "
<div>
$i
</div>$html";
endwhile;
echo $html;
然而,这看起来像WordPress之类的,所以我认为有一种方法可以在循环之前获得行数。
https://stackoverflow.com/questions/51849742
复制相似问题