1

2つの数値を比較し、大きな数値にHTMLクラスを追加しようとしています。この場合はビデオゲームの統計です。これで実行でき$player1[stat]-$player2[stat]、結果が負の場合、player2の値が大きいか、ロジックよりも大きいか小さいかを通常どおりに実行できます。しかし、問題は、クラスを比較して追加する必要がある約20の異なる統計があるということです。

大きな値を太字にする最も簡単な方法は何でしょうか。

ケーススイッチを試してみるつもりでしたが、面倒そうです。20の異なるifステートメントも不要のようです。

ありがとう!

編集:明確にするために、値もエコーする必要がありますが、最大の太字を使用します

$player1[kills] = 55;  
$player2[kills] = 40;  

$player1[deaths] = 15;  
$player2[deaths] = 10;

望ましい結果:

<table>  
    <tr> 
        <th>Statistic</th>
        <th>Player 1</th>   
        <th>Player 2</th>        
    </tr>
    <tr> 
        <th>Kills</th>
        <th><strong>40Player 2</th>        
    </tr>  
    <tr> 
        <th>Deaths</th>
        <th>15</th>   
        <th><strong>10</strong></th>        
    </tr>      
</table>

もう1つ、死者が少ない方が良いので、そのインスタンスに小さい方をどのように選択するかという方法はありますか?

4

2 に答える 2

1

次のようなものを使用して、各グループから最大値を取得します。

$maxkills = max($player1['kills'], $player2['kills']);
$maxdeaths = max($player1['deaths'], $player2['deaths']);

出力時:

if ($player1['kills'] == $maxkills) {
   // Add <strong> tag
   echo "<strong>{$player1['kills']}</strong>";
}
else {
   // output without <strong> tag
   echo $player1['kills'];
}

三項演算子を使用して、これを短縮することもできます。

echo $player1['kills'] == $maxkills ? "<strong>{$player1['kills']}</strong>" : $player1['kills'];

ちなみに、配列キーは引用符で囲んでください。PHPはそれらを正しく解析しますが(定数の代わりに文字列を使用することを想定しているため)、通知がログファイルに蓄積されている場合でも、実行するたびに通知を発行します。

于 2012-04-07T00:16:18.257 に答える
0

killsとdeathの値を取得するときは、それらをグローバル配列に追加します。

$kills = array();
$death = array();
while($row = mysql_fetch_assoc($query)) //... or some database operation
    $kills[] = $row['kills'];
    $death[] = $row['deaths';

    //do other details
}

次に、各値の最大値を調べます

$killMax = max($kills);
$deathMax = max($death);

今、あなたがこれに対抗するために表示しているところはどこでも

echo $player1['kill']==$killMax ? "<strong>".$killMax."</strong>" : $killMax;
于 2012-04-07T00:28:37.477 に答える