0

前几天我问了这个问题,但我删除了它,因为我太模糊了,所以这里有更详细的信息,希望有人能提供帮助。对不起,如果解释很长,但我想确保这次有意义。

我有一个健身网站,显示人们在 drupal 上运行的健身测试的分数,所以我使用的是 mysql 和 php。

该网站还有一个名为Trianables. 可训练是您可以锻炼的东西,例如速度和力量,它们将帮助您在运动中变得更好。共有12个可训练对象。

您对每个可训练项都有一个分数,该分数由 php 代码计算,该代码从数据库中选择 1 个或多个体能测试结果(取决于可训练项),计算您与数据库中其他运动员相比的排名,将该计算放入一个数字中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 回答