1

这是代码:

$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

4

4 回答 4

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
}

这是一个例子

于 2012-07-26T05:28:15.410 回答
0

你的这条线有问题 for($a=0; $a<5; $a++)

$b总是递增到5

$x要解决这个问题,只需foreach1. 取消$b并简单地echo $x; $x++;在适当的地方。

于 2012-07-26T05:24:23.920 回答
0

您可以将代码更改为:

$b=1;
foreach($TopFive as $key => $tops)
{                                   
    for($i=0; $i<$tops; $i++)
    {
        echo "*";
    }          
    echo "#$b:{$key} - {$tops} <br/>";    
    $b++;
 }

但是所有的内部循环都是多余的。

于 2012-07-26T05:29:07.757 回答
0

在您的代码中,请更改此部分:

echo "{$b}";        
echo "#:{$key} - {$tops} <br/>";    

至:

// echo "{$b}";        
echo "#$i:{$key} - {$tops} <br/>";

并使用str_repeat('*', $count)而不是for循环!:)

于 2012-07-26T05:31:13.500 回答