循环问题PHP

时间:2012-07-26 05:19:54

标签: 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

4 个答案:

答案 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
}

Here's an example

答案 1 :(得分:0)

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

$b总是递增到5

要解决此问题,只需使用$x初始化foreach({1}}循环之外的1(或任何内容)。在适当的地方取消$becho $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循环! :)