循环问题PHP


Looping issue PHP

以下是代码:

$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

如果:

$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
}

下面是一个例子。

您的此行有问题for($a=0; $a<5; $a++)

$b总是递增到5

要解决这个问题,只需用1初始化foreach循环之外的$x(或任何东西)。在适当的地方去掉$b,简单地去掉echo $x; $x++;

您可以将代码更改为:

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

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

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

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

收件人:

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

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