我一直在思考几个小时,但我仍然无法为此获得解决方案
基本上我想做的是在一段时间内回显一个分隔符,它应该是这样的
$num = 1;
while($num < 3){
echo 'dog';
//function to stop while
echo 'separator';
//function to continue while
echo 'cat';
$num++;
}
我想获得此输出
dog
dog
dog
separator
cat
cat
cat
我不知道我是否解释得很好,但希望你理解。非常感谢你提前。
更新:我知道我可以使用2而不是函数来实现这个功能但是可以只使用一个函数吗?
答案 0 :(得分:2)
绝对是的,你可以用一个〜函数。 :)
function OnlyOneWhileFunction($echoThis, $howManyTimes){
$i = 1;
while($i <= $howManyTimes){
echo $echoThis."\r\n";
$i++;
}
}
OnlyOneWhileFunction('dog', 3);
echo 'separator';
OnlyOneWhileFunction('cat', 3);
答案 1 :(得分:1)
$num = 0;
$dogs = '';
$cats = '';
$seperator = 'seperator';
while($num < 3){
$dogs .= 'dog';
$cats .= 'cat';
$num++;
}
echo $dogs . $seperator . $cats;
保存每只狗和猫的输出,然后结束。
答案 2 :(得分:1)
替代解决方案:
$items = array_reverse(array("cat","dog"));
$output = array();
while(count($items) > 0)
{
$item = array_pop($items);
$output[] = implode("\n", array_fill(0, 3, $item));
}
echo implode("\nseparator\n", $output);
您可以将\n
替换为<br>
以获取HTML输出(或使用nl2br
)。
答案 3 :(得分:0)
以下代码应该有效:
$num = 0;
while($num <= 6){
if($num < 3) echo 'dog<br/>';
else if($num == 3) echo 'separator<br/>';
else echo 'cat<br/>';
$num++;
}
答案 4 :(得分:0)
试试这个:
<?php
$num = 0;
while($num < 7){
if($num < 3)
echo 'dog';
elseif($num == 3)
echo 'separator';
elseif($num>3)
echo 'cat';
echo "<br>";
$num++;
}
?>
答案 5 :(得分:0)
最好使用C样式for循环和函数调用:
$recho = function($out, $limit) {
for ($x=0; $x<$limit; $x++) {
echo $out . "\n";
}
}
$recho('dog',3);
echo "seperator\n";
$recho('cat',3);
将其放在网页上的<pre>
内以获取换行符,或将"\n"
替换为<br>
代码。
答案 6 :(得分:0)
如果你想要n个选项并假设每个选项迭代次数相同,那么这是另一种方法。我做了一些清理,但这是一种快速而肮脏的方法:
<?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');
?>