2014-06-10 196 views
2

的一部分,我有一個來自ORACLE兩個PHP字符串創建一個:PHP比較兩個字符串,並基於字符串

array (size=4) 
0 => string '30 Jan 2014| 09:00-10:00 | Workshop' (length=61) 
1 => string '30 Jan 2014| 10:00-11:00 | Workshop' (length=61) 
2 => string '06 Feb 2014| 09:00-10:00 | Workshop' (length=61) 
3 => string '06 Feb 2014| 10:00-11:00 | Workshop' (length=61) 

..和我正在尋找一種方式來獲得這樣的:

array (size=4) 
0 => string '30 Jan 2014 | 09:00-11:00 | Workshop' (length=61) 
1 => string '06 Jan 2014 | 09:00-11:00 | Workshop' (length=61) 

基本上以兩個相同日期記錄合併成一個具有組合的時間......我需要做到這一點,而讓所有的紀錄在

的foreach($結果爲$行){}

loop .. 任何意見將不勝感激。 謝謝

+0

我們展示[你已經嘗試了什麼(http://mattgemmell.com/2008/12/ 08 /什麼具備的,你試了/)。請參閱[關於堆棧溢出](http://stackoverflow.com/about)。 –

+0

我試圖使用substr(),但我無法讓我的頭輪「如何與前一個比較日期.. – Dims

+0

嘗試在每一行使用爆炸('|') –

回答

2

基本上你需要跟蹤變量中的前一個日期,然後你可以比較它在你的下一個循環迭代。做完比較之後,您將其更新爲包含當前值。接下來的迭代可以執行相同的比較和變量賦值。

基本思想:

$current_date = ''; 
foreach($result as $row){ 
    // get date here 
    $date = 'get date from your string here'; 

    // Do your check 
    if ($current_date === $date) { 
     // do something 
    } 

    // save the date for the next iteration 
    $current_date = $date; 
} 
+0

得到它的工作!感謝一堆約翰! – Dims

0

好像你應該能夠做到這一點在你的數據庫查詢,使用類似分組。我對甲骨文並不熟悉,無法準確告訴你如何,但我確信足夠的人在這裏。

+0

這應該是一個評論 –

+0

它完全應該,不幸的是我沒有足夠的代表點。 – Tom

0

萬一有人會看看這個..:

foreach($result as $row) 
{ 
    $date = show_date($row->getField('STARTTIME')); 
if($current_date === $date) 
{ 
    $EndTime = convert_time($row->getField('ENDTIME')); 
} 
else 
{ 
    $StartTime = convert_time($row->getField('STARTTIME')); 
    $EndTime = ''; 
    } 
$current_date = $date; 
} 

排序感謝約翰