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までにしたいだけです。

カウントが5だけでなく、1から5になるように、$bのループを調整する方法についてアドバイスが必要です。

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$becho $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 に答える