私は、タイムスタンプとデュレーションの配列と占有タイムスタンプの配列を持っています。 これらのタイムスタンプが衝突するかどうかを確認する必要があります。タイムスタンプの範囲がタイムスタンプの範囲内にある場合
基本的に$スタート[] $occupied[0]
は、1時間(3600秒)のその範囲内にあるので、上記$start[0]
から
$start[0] = 1486987200; // 12:00
$duration[0] = 3600;
$start[1] = 1487008800; // 18:00
$duration[1] = 7200;
$occupied[0] = 1486989000; // 12:30
$ocDuration[0] = 3600;
$occupied[1] = 1487019600; // 21:00
$ocDuration[1] = 7200;
が不可能である$ []占有タイムスタンプの任意の範囲内にすることはできませんが$start[1]
それは18:00から始まり、2時間後に終了するため可能です。 $occupied[0]
は両方$start[]
重なった場合
別の状況は次のようになります。
そこで問題、どのように私は、このようなチェックを行うことができますか?
は、この種のもの【区間木(https://en.wikipedia.org/wiki/Interval_tree)の説明及び実証 – Ima
は、優れたデータ構造である好き。 PHP実装があるかどうかはわかりません。私はPythonライブラリ([this](https://pypi.python.org/pypi/intervaltree))に似たようなものを作りました。 – deceze
返信いただきありがとうございます。私は区間木を調べます。これが将来的には良いと思われるようだ – JPJens