Php 循环,最后一个条目的单独进程(最简单的解决方案)
我有一个关于循环的问题,如果我有。当前我的代码如下所示:Php 循环,最后一个条目的单独进程(最简单的解决方案),php,mysql,Php,Mysql,我有一个关于循环的问题,如果我有。当前我的代码如下所示: $rtitle = "SELECT title FROM table WHERE genre='$category'"; $ptitles = mysqli_query($connection,$rtitle) or die(mysqli_error($connection)); while ($title2 = mysqli_fetch_object($ptitles)); printf(
$rtitle = "SELECT title FROM table WHERE genre='$category'";
$ptitles = mysqli_query($connection,$rtitle) or die(mysqli_error($connection));
while ($title2 = mysqli_fetch_object($ptitles));
printf('"name": "%s",', $title2->title);
正如您在最后一行中所看到的,标题后会打印一个逗号。
但是,我希望最后一个条目的末尾不要有逗号
目前,我正在考虑使用哪些选项。但是,我认为如果是if语句,我不确定如何制定if循环来检查最后一个on。我曾考虑过使用计数器,但我不确定这是否有效。因为我有几个这样的循环,它们相互依赖,如果可能的话,我希望保持while循环
有人对一个好的方法有什么建议吗(如果有人有一个很好的例子)?
非常感谢 您可以使用PHP内置函数
内爆
:
string implode ( string $glue , array $pieces )
Join array elements with a glue string.
php.net/manual/en/function.implode.php
$names = array();
while ($title2 = mysqli_fetch_object($ptitles)) {
$names[] = sprintf('"name": "%s"', $title2->title);
}
echo implode(',', $names);
您可以在每次迭代时将标题推入一个数组,然后在循环后将数组内爆:
echo implode(',', $array);
您已经得到了答案,但仍然有一点提示:如果您事先不知道循环迭代的次数,那么通过一个简单的标志就可以更容易地确定您是否在第一次循环迭代中……因此,如果您只是在每个项之前输出一个逗号,而不在第一项中执行此操作,您可以非常简单地实现相同的效果。@CBroe,谢谢您的提示。非常有用。当我遇到类似的问题时,我会考虑的!谢谢谢谢如上所述,我做了类似的事情!