php сравнивает две строки и создает одну на основе части строки


У меня есть две строки php, которые получены от ORACLE:

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)

В основном для объединения двух записей с одинаковой датой в одну с объединенным временем... Мне нужно сделать это, получая всю запись в

Для каждого ($результат в виде $строки){}

Цикл.. Любой совет был бы очень признателен. Спасибо

 2
Author: Dims, 2014-06-10

3 answers

В основном вам нужно отслеживать предыдущую дату в переменной, а затем вы можете сравнить ее на следующей итерации цикла. После выполнения сравнения вы обновляете его, чтобы оно содержало текущее значение. Затем следующая итерация может выполнить то же сравнение и присвоение переменных.

Основная идея:

$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;
}
 2
Author: John Conde, 2014-06-10 13:28:05

Похоже, что вы должны быть в состоянии сделать это в своем запросе к базе данных, используя что-то вроде ГРУППИРОВКИ. Я недостаточно знаком с Oracle, чтобы точно сказать вам, как это сделать, но я уверен, что здесь достаточно людей.

 0
Author: Tom, 2014-06-10 13:28:38

На случай, если кто-нибудь посмотрит на это..:

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

Отсортировано благодаря Джону

 0
Author: Dims, 2014-06-10 14:00:14