Php 如何在while循环中回显一些代码?

Php 如何在while循环中回显一些代码?,php,loops,while-loop,Php,Loops,While Loop,我想了好几个小时了,但我还是找不到解决办法 基本上我想做的是在一段时间内回显一个分隔符,应该是这样的 $num = 1; while($num < 3){ echo 'dog'; //function to stop while echo 'separator'; //function to continue while echo 'cat'; $num++; } 我不知道我是否解释得很好,但希望你能理解。事先非常感谢 更新:我知道我可以使用2个while函数来实现这一点,但是否

我想了好几个小时了,但我还是找不到解决办法

基本上我想做的是在一段时间内回显一个分隔符,应该是这样的

$num = 1;
while($num < 3){

echo 'dog';

//function to stop while
echo 'separator';
//function to continue while

echo 'cat';

$num++;
}
我不知道我是否解释得很好,但希望你能理解。事先非常感谢


更新:我知道我可以使用2个while函数来实现这一点,但是否可以仅使用一个while函数来实现这一点?

以下代码应该可以工作:

$num = 0;
while($num <= 6){
    if($num < 3)         echo 'dog<br/>';
    else if($num == 3)   echo 'separator<br/>';
    else                 echo 'cat<br/>';
    $num++;
}
$num=0;

而($num以下代码应该可以工作:

$num = 0;
while($num <= 6){
    if($num < 3)         echo 'dog<br/>';
    else if($num == 3)   echo 'separator<br/>';
    else                 echo 'cat<br/>';
    $num++;
}
$num=0;
虽然($num尝试以下方法:

<?php
$num = 0;
while($num < 7){
if($num < 3)
echo 'dog';
elseif($num == 3)
echo 'separator';
elseif($num>3)
echo 'cat';
echo "<br>";
$num++;
}
?>

试试这个:

<?php
$num = 0;
while($num < 7){
if($num < 3)
echo 'dog';
elseif($num == 3)
echo 'separator';
elseif($num>3)
echo 'cat';
echo "<br>";
$num++;
}
?>

$num=0;
$dogs='';
$cats='';
$separator='separator';
而($num<3){
$dogs.='dog';
$cats.='cat';
$num++;
}
echo$狗。$分隔器。$猫;
保存每个狗和猫的输出,然后在最后合并。

$num=0;
$dogs='';
$cats='';
$separator='separator';
而($num<3){
$dogs.='dog';
$cats.='cat';
$num++;
}
echo$狗。$分隔器。$猫;

保存每个狗和猫的输出,然后在最后合并。

最好使用C样式的for循环和函数调用:

$recho = function($out, $limit) {
    for ($x=0; $x<$limit; $x++) {
        echo $out . "\n";
    }
}

$recho('dog',3);
echo "seperator\n";
$recho('cat',3);
$recho=函数($out,$limit){

对于($x=0;$x),最好使用C样式的循环和函数调用:

$recho = function($out, $limit) {
    for ($x=0; $x<$limit; $x++) {
        echo $out . "\n";
    }
}

$recho('dog',3);
echo "seperator\n";
$recho('cat',3);
$recho=函数($out,$limit){

对于($x=0;$x肯定是的,您可以使用while~函数:

function ononnewhilefunction($echoThis,$howManyTimes){
$i=1;

while($i肯定是的,您可以使用一个while~函数。:)

function ononnewhilefunction($echoThis,$howManyTimes){
$i=1;
而($i替代解决方案:

<?php

/**
 * Loops items with separator every nth time
 * @param array list of items
 * @param integer number of iterations
 * @param string separator text
 */
function loopItemsWithSeparator(array $items, $count, $separator) {

    $items = array_reverse($items);
    while(!empty($items)) {
        $item = array_pop($items);
        for($i = 0; $i < $count; $i++) {
            echo $item . "\n";
        }

        if (count($items) > 0) {
            echo($separator . "\n");
        }
    }

}

loopItemsWithSeparator(array('dog', 'cat', 'bird'), 3, 'separator');

?>
您可以将HTML输出的
\n
替换为

(或使用
nl2br
)。

替代解决方案:

<?php

/**
 * Loops items with separator every nth time
 * @param array list of items
 * @param integer number of iterations
 * @param string separator text
 */
function loopItemsWithSeparator(array $items, $count, $separator) {

    $items = array_reverse($items);
    while(!empty($items)) {
        $item = array_pop($items);
        for($i = 0; $i < $count; $i++) {
            echo $item . "\n";
        }

        if (count($items) > 0) {
            echo($separator . "\n");
        }
    }

}

loopItemsWithSeparator(array('dog', 'cat', 'bird'), 3, 'separator');

?>

对于HTML输出,您可以用

替换
\n
(或使用
nl2br
)。

如果您需要n个选项,并假设每个选项重复相同的次数,这里有另一种方法。我会进行一些清理,但这是一种快速而肮脏的方法:


如果您想要n个选项,并假设每个选项重复相同的次数,那么这里有另一种方法。我会做一些清理,但这是一种快速而肮脏的方法:




这个问题似乎很有趣,但解释得不好。你能解释得更多吗?echo dog的数量是否等于cat的数量?是不是唯一可以使用的选项?$num应该是0而不是1。这个问题似乎很有趣,但解释得不好。你能解释得更多吗?echo dog的数量是否等于cat的数量?当使用?$num的唯一选项应该是0而不是1。这个
$num=1;
必须是
$num=0;
才能得到3倍的狗和3倍的猫。是的,但是你的答案是有效的。但是要在另一行下回音,需要有
$separator='separator'。
等等(只是说)实际上,你会在命令行中的每只狗、猫和/或分隔符后加一个“
”。当然,这是另一种方法。感谢所有花时间帮助我的人。这个答案最合适,因为它保持了原始的while状态。在我的问题中,我把狗/猫作为一个简单的问题,但我只想要一个例子,以便可以扩展根据我的需要设置函数。这个
$num=1;
必须是
$num=0;
才能得到3倍的狗和3倍的猫。虽然你的答案是正确的。但是要在另一行下回音,需要有
$separator='separator'。
等等(只是说)实际上,你会在命令行中的每只狗、猫和/或分隔符后加一个“
”。当然,这是另一种方法。感谢所有花时间帮助我的人。这个答案最合适,因为它保持了原始的while状态。在我的问题中,我把狗/猫作为一个简单的问题,但我只想要一个例子,以便可以扩展根据我的需要设置函数。这将输出
dog\r\ndog\r\ndog\r\nSparatorcat\r\ncat\r\ncat\r\n
更改为
echo$echoThis。“\r\n”
使用双引号,而不是单引号。让提问者付出一些汗水。他也应该学习,不是吗?-)我认为这个答案太直白了,因为只有一个while循环。我相信OP只意味着运行一个循环,而不是编写一个循环。Marty你说的没错,问题是我正在将这段代码用于一个大型sql查询,我无法执行它两次。无论如何,感谢sanjeev花时间帮助meThis Willl输出
dog\r\ndog\r\ndog\r\nSparatorcat\r\ncat\r\ncat\r\n
更改为
echo$echoThis。“\r\n”
使用双引号,而不是单引号。让提问者付出一些努力。他也应该学会这一点我认为这个答案太直白了,因为只有一个while循环。我相信OP只意味着运行一个循环,而不是编写一个循环。Marty你说的没错,问题是我正在使用一个大sql查询的代码,我无法执行它两次。无论如何,感谢sanjeev花时间帮助medidn'see是唯一的一个while循环条件,但我将把它留在这里。请注意,此解决方案中有一个嵌套循环…没有看到唯一的一个while循环条件,但我将把它留在这里。请注意,此解决方案中有一个嵌套循环。。。