0

私はphpを使用することを望んでいますが、非常に長いためあまり効率的ではないこのコードに取り組んでおり、より自動化したいと考えています。アイデアは、2つの列を持つテーブルを生成することです。1つはユーザー名を持ち、もう1つは各ユーザーのスコアを持ちます。ご想像のとおり、スコアは同じユーザーの他の変数を使用する関数に基づいています。私の目標は、ユーザーごとに1つの変数を設定するだけでよく、テーブルの最後に新しい行が自動的に作成されます。

<?php
$array1['AAA'] = "aaa"; ## I'm suposed to only set the values for array1, the rest
$array1['BBB'] = "bbb"; ## should be automatic
$array1['ETC'] = "etc";

function getscore($array1){
   ## some code
   return $score;
   };

$score['AAA'] = getscore($array1['AAA']);
$score['BBB'] = getscore($array1['BBB']);
$score['ETC'] = getscore($array1['ETC']);
?>
<-- Here comes the HTML table --->
<html>
<body>
<table> 
<thead> 
  <tr> 
      <th>User</th> 
      <th>Score</th> 
  </tr> 
</thead> 
<tbody> 
  <tr> 
      <td>AAA</td> <-- user name should be set automaticlly too -->
      <td><?php echo $score['AAA'] ?></td> 
  </tr> 
  <tr> 
      <td>BBB</td> 
      <td><?php echo $score['BBB'] ?></td> 
  </tr> 
  <tr> 
      <td>ETC</td> 
      <td><?php echo $winrate['ETC'] ?></td> 
  </tr>
</tbody>
</table>
</body>
</html>

どんな助けでも大歓迎です!

4

2 に答える 2

0
$outputHtml = ''
foreach( $array1 as $key => $val ) 
{
    $outputHtml .= "<tr> ";
    $outputHtml .= "      <td>$key</td>";
    $outputHtml .= "      <td>".getscore($array1[$key]);."</td>";
    $outputHtml .= "  </tr>";
}

次に、$outputHtml表示したいすべての行を含むhtmlコンテンツが表示されます

于 2012-09-14T04:47:16.087 に答える
0

これは少しきれいで、とを使用foreachしていprintfます:

<?php

$array1 = array(
  ['AAA'] => "aaa",
  ['BBB'] => "bbb",
  ['ETC'] => "etc"
);

function getscore($foo) {
   ## some code
   $score = rand(1,100); // for example
   return $score;
};

foreach ($array1 as $key => $value) {
  $score[$key] = getscore($array1[$key]);
}

$fmt='<tr>
      <td>%s</td>
      <td>%s</td>
  </tr>';

?>
<-- Here comes the HTML table --->
<html>
<body>
<table><thead>
  <tr>
      <th>User</th>
      <th>Score</th>
  </tr></thead><tbody><?php

foreach ($array1 as $key => $value) {
  printf($fmt, $key, $score[$key]);
}

?>
</tbody></table>
</body>
</html>

$array1また、どこの値も使用していないようです。$winrateまた、コードに何が含まれているかわからないため、無視しました。

于 2012-09-14T11:22:14.900 に答える