ホームページ >バックエンド開発 >PHPチュートリアル >アルゴリズムの問題です、アドバイスをお願いします
上の写真のように、ルームには入室時間と退室時間の記録があり、そのルームにいる時間をどのように記録するかが異なります。データベースに保存される配列形式は次のとおりです
['id'=>1,'uid'=>22,'stauts'=>'leave','time'=> 1415947332]
['id'=>2, 'uid'=>22,'stauts'=>'Enter','time'=>1415947333]
['id'=>3,'uid '=>22,'stauts'=> '退出','time'=>1415997332]
['id'=>4,'uid'=>22,'stauts'=>'Enter ','time'=>1416947333]
[ 'id'=>6,'uid'=>23,'stauts'=>'leave','time'=>1415947332]
['id '=>7,'uid'=> 23,'stauts'=>'Enter','time'=>1415947333]
['id'=>8,'uid'=>23, 'stauts'=>'退出','time '=>1415997332]
['id'=>9,'uid'=>23,'stauts'=>'Enter','time'= >1416947333]
...
]
上の写真のように、ルームには入室時間と退室時間の記録があり、そのルームにいる時間をどのように記録するかが異なります。データベースに保存される配列形式は次のとおりです
['id'=>1,'uid'=>22,'stauts'=>'leave','time'=> 1415947332]
['id'=>2, 'uid'=>22,'stauts'=>'Enter','time'=>1415947333]
['id'=>3,'uid '=>22,'stauts'=> '退出','time'=>1415997332]
['id'=>4,'uid'=>22,'stauts'=>'Enter ','time'=>1416947333]
[ 'id'=>6,'uid'=>23,'stauts'=>'leave','time'=>1415947332]
['id '=>7,'uid'=> 23,'stauts'=>'Enter','time'=>1415947333]
['id'=>8,'uid'=>23, 'stauts'=>'退出','time '=>1415997332]
['id'=>9,'uid'=>23,'stauts'=>'Enter','time'= >1416947333]
...
]
リーリー
配列をループすると、新しい配列に ID をキーとして退出時刻と入場時刻が保存されます。最後に、新しい配列からキーを削除して、必要な形式を取得します。 ただし、これにはすべてのデータをクエリする必要があります
リーリーリーリー
一般的な考え方は次のようになります。この複数のループは時間がかかり、データが大量にある場合は非常に遅くなります。最初にループの 2 番目の層を削除し、その後それらを設定解除するなど、より最適化された方法があります。もちろん、これには第 2 レベルのループ配列を第 1 レベルの配列から分離する必要があります