此表由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。
以下是get rank
功能的代码function get_rank($array){
$pref= $array;
arsort($pref);
$no=1;
$new = array();
foreach($pref as $key => $value){
$new[$key] = $no++;
}
return $new;
}
答案 0 :(得分:0)
您的代码段中没有声明$PRODUK
。您正在通过$rank
迭代foreach($rank as $key => $value)
。因此密钥为$key
,$rank[$key]
的副本位于$value
。请尝试输出$value
或澄清您的问题,并提供更多代码,以便了解$PRODUK
及其与$rank
的关系。
从你的第二个片段开始,返回的数组的值是等级,即thay可能代表原始数组的键。所以你可以试着输出例如round($pref[$value])
和$PRODUK[$value]
。您可能需要从排名0开始,因为数组通常基于零。但是,您不提供初始化代码。
再次:你的问题没有提供足够的信息。
为了您添加的问题
如何仅回显第一行中产品的名称
$key = 1; // respective to your code $no=1;
$value = $rank[$key];
您不需要任何foreach循环来访问单个元素。
答案 1 :(得分:0)
它可能对你有帮助
$rank = get_rank($pref);
echo"<tr>";
echo"<th>".key($rank)."</th>";
echo "<td class='text-primary'>".round($pref[key($rank)], 3)."</td>";
echo "<td class='text-primary'>".reset($rank)."</td>";
echo "</tr>";