2016-07-29 61 views
0

我要合併的陣列的一些元件: - 如果日期重疊然後合併元件:合併元件如果日期重疊

例如:

陣列:

ID:1個 START_DATE: 2016年5月5日 END_DATE:2016年10月5日 數量:5

ID:2 START_DATE:2016年12月5日 END_DATE:2016年12月5日 量:20

ID:3 START_DATE:2016年9月5日 END_DATE:15/05/2016 量:50

ID:4 START_DATE:05/05/2016 END_DATE:2016年10月5日 量:100

ID:5 START_DATE:2016年1月8日 END_DATE:2016年1月8日 量:10

第一解析:

ID:1 START_DATE:2016年5月5日 END_DATE:15/05/2016 量:155

d:2 START_DATE:2016年12月5日 END_DATE: 2016年12月5日 量:20

ID:5 START_DATE:2016年1月8日 END_DATE:2016年1月8日 量:10

第二解析:

ID:1 START_DATE:2016年5月5日 END_DATE:15/05/2016 量:175

ID:5 START_DATE:2016年1月8日 END_DATE: 01/08/2016 數量:10

我希望我很清楚。 其實爲了讓這個我需要一個while循環和2 foreach,但它是如此昂貴。 什麼是最好的方式來做到這一點在PHP?

感謝

回答

0

你可以採取每個月的最小天,最高的一天在你的日期,然後有最小的之間的一天,最高必須合併所有日期。你可以用一個循環結束了

+0

你好,沒有it'snt作品,對於爲例 ID 1 =>起始日期:2016年5月5日截止日期2015年5月5日 ID 2 =>起始日期:15/05/2016結束日期25/05/2015 id 3 => start_date:08/05/2016結束日期08/05/2015 我無法合併,因爲沒有日期重疊 – Olaf

+0

對不起,也許我誤解了這個問題。您可以先選擇開始日期和結束日期之間差異最大的日期,然後合併所有在其間隔結束日期的日期。然後重複相同的步驟,但沒有以前的日期 –