【发布时间】:2016-05-28 02:45:52
【问题描述】:
此表由 3 列组成:产品的键名、总值和排名。这些排名是根据总值排序的。如何只回显第一行总价值最大的产品名称?如何获取包含最大值的第一行的键?
这是排名表的代码
<table class="table table-bordered table-striped table-hover">
<tr>
<th></th>
<th>Total</th>
<th>Rank</th>
</tr>
<?php
$rank = get_rank($pref);
foreach($rank as $key => $value){
echo"<tr>";
echo"<th>$key - $PRODUK[$key]</th>";
echo "<td class='text-primary'>".round($pref[$key], 3)."</td>";
echo "<td class='text-primary'>".$rank[$key]."</td>";
echo "</tr>";
$no++;
}
?>
</table>
$key 是密钥,$PRODUK[key] 是产品名称。它们的总价值是 $pref。
这是获取排名功能的代码
function get_rank($array){
$pref= $array;
arsort($pref);
$no=1;
$new = array();
foreach($pref as $key => $value){
$new[$key] = $no++;
}
return $new;
}
【问题讨论】:
-
函数
get_rank的意义何在?也许是为了获得数组的有序 copy 而不是重新排序数组?是不是用arsort()然后给键编号和只用sort()一模一样? -
请说明
$PRODUK和$pref是如何初始化/生成的。 -
如果这个数组代表一个表,我很好奇你为什么不简单地使用查询来按你想要的方式获取和排序数据。
-
您的问题不是“好问题”,很有可能被否决甚至被删除。请阅读How do I ask a good question? 和How to create a Minimal, Complete, and Verifiable example。显示,实际输出的是什么。解释预期的结果。显示所有数组包含键的内容。试试
var_dump($variable)
标签: php arrays associative