0

先日この質問をしましたが、あいまいすぎたので削除しました。誰かが助けてくれることを願って、ここで詳細を説明します。説明が長くなって申し訳ありませんが、今回は意味が通じるようにしたいと思います。

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 を使用することもできます。

説明が必要な場合は、お尋ねください。

4

1 に答える 1

0

これがあなたが探しているものだと思います:

<?php
$arr = array(
   array(0 => "trainable",1=>100,2=>"exercise"),
   array(0 => "balance",1=>50,2=>"balance board squat"),
   array(0 => "lower strength",1=>200,2=>"squats")
);

foreach ($arr as $key => $row) {
    $score[$key]  = $row[1];
}

array_multisort($score, SORT_ASC, $arr);

print_r($arr);
?>

出力:

Array
(
    [0] => Array
        (
            [0] => balance
            [1] => 50
            [2] => balance board squat
        )

    [1] => Array
        (
            [0] => trainable
            [1] => 100
            [2] => exercise
        )

    [2] => Array
        (
            [0] => lower strength
            [1] => 200
            [2] => exercise
        )

)

必要に応じてスプライスでき、表を印刷できます。もちろん、最初の配列 ( $arr) を拡張して、必要に応じて 12 個またはそれ以上の演習を含めることができます。

于 2012-05-09T08:44:20.757 に答える