以下是代码:
$TopFive = array_slice($counts,0,5);
{
foreach($TopFive as $key => $tops)
{
for($i=0; $i<$tops; $i++)
{
echo "*";
}
$b=0;
for($a=0; $a<5; $a++)
{
$b++;
}
echo "{$b}";
echo "#:{$key} - {$tops} <br/>";
}
}
目前,输出看起来是这样的:
*********5#:THE - 9
*****5#:OF - 5
*****5#:TO - 5
***5#:AND - 3
***5#:THEM - 3
但我真正想要的是:
********* #1: THE - 9
***** #2: OF - 5
***** #3: TO - 5
*** #4: AND - 3
*** #5: THEM - 3
我似乎无法弄清楚如何安排循环。有任何想法吗?我很抱歉这个简单的问题,我没有想法。我只想要数字来自1-5。
我只是想知道如何安排$ b的循环,以便计数从1-5开始,而不仅仅是5
答案 0 :(得分:3)
如果:
$TopFive = array('THE' => 9, 'OF' => 5, 'TO' => 5, 'AND' => 3, 'THEM' => 3);
然后:
$number = 1;
foreach ($TopFive as $word => $count)
{
echo str_repeat('*', $count); // Outputs '*' characters
echo " #{$number}: {$word} - {$count}\n";
$number++; // increment your number
}
答案 1 :(得分:0)
你的这一行有问题
for($a=0; $a<5; $a++)
$b
总是递增到5
要解决此问题,只需使用$x
初始化foreach
({1}}循环之外的1
(或任何内容)。在适当的地方取消$b
和echo $x; $x++;
。
答案 2 :(得分:0)
您可以将代码更改为:
$b=1;
foreach($TopFive as $key => $tops)
{
for($i=0; $i<$tops; $i++)
{
echo "*";
}
echo "#$b:{$key} - {$tops} <br/>";
$b++;
}
但所有内部循环都是多余的。
答案 3 :(得分:0)
在您的代码中,请更改此部分:
echo "{$b}";
echo "#:{$key} - {$tops} <br/>";
要:
// echo "{$b}";
echo "#$i:{$key} - {$tops} <br/>";
并使用str_repeat('*', $count)
代替for
循环! :)