2014-06-10 137 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; 
} 

排序感谢约翰