ホームページ  >  記事  >  バックエンド開発  >  アルゴリズムの問​​題です、アドバイスをお願いします

アルゴリズムの問​​題です、アドバイスをお願いします

WBOY
WBOYオリジナル
2016-08-18 09:15:28939ブラウズ

アルゴリズムの問​​題です、アドバイスをお願いします

上の写真のように、ルームには入室時間と退室時間の記録があり、そのルームにいる時間をどのように記録するかが異なります。データベースに保存される配列形式は次のとおりです
['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 レベルの配列から分離する必要があります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。