我有 2 个表:dt_times和dt_reports
dt_times包含时间列表,dt_reports包含对相关时间的投票(正/负)。
我的代码执行以下操作:
- 选择今天之前的所有时间
- 对于这些时间中的每一个 - 计算保证金
((positive-negative)/positive)*100
- 结果存储在数组中
在所有迭代之后,这里是 id => margin 的 var_dump
array(8) {
[111]=> int(100)
[110]=> int(-100)
[108]=> int(-100)
[100]=> int(100)
[97]=> int(100)
[92]=> int(100)
[59]=> float(-71.4285714286)
[58]=> float(-50)
}
我需要选择最高边距,其中 id 也是最高的。因为您可以看到 111、100、97 和 92 - 都具有相同的 100 值。
到目前为止,我的代码是这样的:
while ($row = mysql_fetch_array($result)) {
//Get values for quality
//calculate margin
$arr[$row['id']] = $margin;
$arr2[$margin] = $row['id'];
}
$timeId = $arr2[max($arr)];
但是,在所有循环之后,$timeId 是 92,这是数组中值为 100 的最后一个 id
我认为 array_keys 可能是答案,但为了我生命中的热爱,我无法弄清楚它们 =(