私の問題は次のとおりです。文字列を含む同じ長さの2 つの配列が$first
あります。$second
という名前のテーブルで、すべての文字列に正の値が与えられますFullhandvalues
。
Field: board : string(7) PRIMARY KEY
Field: value : int (11)
$first[$i] が $second[$i] よりも良い値を持つ回数、同じ値を持つ回数、$first[$i] が $ より悪い値を持つ回数を数えたい秒[$i]。
私が今やったことは、経由ですべての値を取得することです
$values[0]= DB::table('Fullhandvalues')->where_in("board",$first)->get(Array("value"));
$values[1]= DB::table('Fullhandvalues')->where_in("board",$second)->get(Array("value"));
そして値を比較します。しかし、これは非常に遅いようです (配列の長さが 5000 で、テーブル内のエントリが 50000 の場合、約 6 秒)。
よろしくお願いします
編集:それらをループする方法:
$win=0;$lose=0;$tie=0;
for($i=0;$i<count($values[0]);$i++)
{
if ($values[0][$i]>$values[1][$i])
$win++;
elseif ($values[0][$i]<$values[1][$i])
$lose++;
else $tie++;
}