Algorithmus zu kombinieren / verbinden von Zeiträumen

Ich versuche den besten Weg finden, wie Sie merge-Datumsbereiche in einem Datenbank-Datensatz (array-element).

Das sind die Daten die ich habe:

  Array
(
    [0] => Array
        (
            [id] => 18298
            [start_date] => 2011-07-09
            [end_date] => 2011-10-01
        )

    [1] => Array
        (
            [id] => 18297
            [start_date] => 2011-06-01
            [end_date] => 2011-06-30
        )

    [2] => Array
        (
            [id] => 17113
            [start_date] => 2011-03-31
            [end_date] => 2011-05-31
        )

    [3] => Array
        (
            [id] => 20555
            [start_date] => 2011-01-03
            [end_date] => 2011-03-31
        )
)

Und nachdem wir Sie kombinieren, array (oder Datenbank) sollte wie folgt Aussehen:

Array
(
    [0] => Array
        (
            [merged_ids] => 18298
            [start_date] => 2011-07-09
            [end_date] => 2011-10-01
        )

    [1] => Array
        (
            [merged_ids] => 18297, 17113, 20555
            [start_date] => 2011-01-03
            [end_date] => 2011-06-30
        )
)

Gibt es eine Algorithmus zum Durchlaufen aller Elemente/- Bereiche und kombinieren Sie Sie? Welcher Weg ist besser/einfacher zu tun - durch die Datenbank (MYSQL) oder Kodierung (PHP)?

Jede Beratung wird sehr geschätzt.

Dank!

UPDATE: Sorry, ich habe nicht genug info: wir führen eine kontinuierliche und überlappende Zeiträume.

  • Wie bestimmen Sie, welche Daten zusammengeführt werden sollen? Ist es, wenn Sie kontinuierlich?
  • ist es garantiert, dass die ursprünglichen Zeiträume nicht überlappen?
  • Sind Sie nicht überlappen Beispiel Daten, die er gab? 20555 und 17113 überlappen. Ebenfalls funktioniert das merged_ids Eigenschaft haben, jede Sorte, damit Ihre Elemente?
  • wir sollten uns Zusammenführen, kontinuierliche und überlappende Zeiträume
InformationsquelleAutor Kelvin | 2011-02-11
Schreibe einen Kommentar