php比较两个字符串并根据字符串的一部分创建一个

时间:2014-06-10 13:22:10

标签: php oracle

我有两个来自ORACLE的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($ result as $ row){}

环.. 任何建议将不胜感激。 感谢

3 个答案:

答案 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;
}

答案 1 :(得分:0)

您似乎应该可以在数据库查询中使用GROUPING之类的方法执行此操作。我对甲骨文不太熟悉,无法告诉你如何,但我确信这里有足够多的人。

答案 2 :(得分: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;
}

感谢约翰