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 が答えかもしれないと思いますが、私の人生の愛のために、私はそれらを理解できませんでした =(