先日この質問をしましたが、あいまいすぎたので削除しました。誰かが助けてくれることを願って、ここで詳細を説明します。説明が長くなって申し訳ありませんが、今回は意味が通じるようにしたいと思います。
drupal で実行されているフィットネス テストのスコアを表示するフィットネス ウェブサイトを持っているので、mysql と php を使用しています。
このサイトには、 と呼ばれる機能もありますTrianables
。トレーニング可能なものは、スピードやパワーなど、スポーツを上達させるのに役立つものです。全部で 12 個のトレーニング可能オブジェクトがあります。
データベースから 1 つ以上のフィットネス テスト結果を選択し (トレーニング対象に応じて)、データベース内の他のアスリートと比較してランク付けする場所を計算する php コードによって計算されるすべてのトレーニング対象のスコアがあります。 1 ~ 5 で、1 がアスリートの下位 20%、5 がアスリートの上位 20% であり、この数値を php 変数に保存して、ページのさまざまな領域に配置できるようにします。私は通常、このようなコードを使用して画像でこれを行います
echo "<img src='http://example.com/images/score$Balance.png'>";
この例では、score4.png という名前の画像が得られます。私はscore1.png-score5.pngを持っています
ページ内のさまざまなタブにトレーニング可能なスコアを表示しますが、最初のタブに、スコアが最も低い 5 つのトレーニング可能なもの (1 と 2 など) とそれぞれの演習を表示して、改善するための5つの最も重要な演習.
これには、12 個すべての変数 (トレーニング可能な変数ごとに 1 つ) を取得し、それらを最小値から最大値までランク付けしてから、最小値の 5 つだけを出力するスクリプトが必要です。
配列でこれを行う最良の方法はありますか? このコードを使用するために、配列を使用して最小の5つの数字を吐き出す方法を見つけました
<?php
$worsttrains=array($trainable1, $trainable2, $trainable3, $trainable4, $trainable5, $trainable6, $trainable7, $trainable8, $trainable9, $trainable10, $trainable11, $trainable12);
asort($worsttrains, SORT_NUMERIC);
$worst5trains=array_slice($worsttrains, 0, 5, true);
foreach ($worst5trains as $a)
echo " ".$a ;
echo "<br>";
?>
最後に、以下のコードのような表形式でデータを表示したいと思いますが、スコア列の変数で並べ替えられたコードが必要です。他の情報を行に含める必要があります (トレーニング可能なおよび演習)、最小の変数を含む 5 行のみを表示できます。これは配列で可能ですか、それともjqueryのようなものを見る必要がありますか?
<table>
<tr>
<th>Trainable</th>
<th>Score</th>
<th>Exercise</th>
</tr>
<tr>
<td>Balance</td>
<td>$balance</td>
<td>Balance Board Squat</td>
</tr>
<tr>
<td>Lower Strength</td>
<td>$lowerstrength</td>
<td>Squats</td>
</tr>
<tr>
<td>Lower Power</td>
<td>$lowerpower</td>
<td>Forward Jump Squats</td>
</tr>
<tr>
<td>Lower Quickness</td>
<td>$lowerquickness</td>
<td>Skater Hop</td>
</tr>
<tr>
<td>Reaction Time</td>
<td>$reactiontime</td>
<td>4 Corner Listen</td>
</tr>
<tr>
<td>Brakes</td>
<td>$brakes</td>
<td>Monger Hop</td>
</tr>
<tr>
<td>Upper Quickness</td>
<td>$upperquickness</td>
<td>Light Ball Toss</td>
</tr>
</table>
テーブルで行うよりも簡単な場合は、div を使用することもできます。
説明が必要な場合は、お尋ねください。