2014-06-10 2 views
2

의 일부를 기반으로 하나를 만들 :PHP는 두 문자열을 비교하고 내가 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 ($ 결과의 모든 기록을 점점 동안이 작업을 수행해야 행) {}

루프 .. 모든 조언을 많이 주시면 감사하겠습니다. 감사합니다.

+0

우리를 [당신이 무엇을 시도했다 (보기 http://mattgemmell.com/2008/12/ 08/what-have-you-tried /). See [stack overflow] (http://stackoverflow.com/about). –

+0

substr()을 사용하려고했지만 "이전 머리글과 날짜를 비교하는 방법"이라는 내 머리글을 얻을 수 없습니다 .. – Dims

+0

각 줄마다 explode ('|')를 사용하십시오 –

답변

2

기본적으로 변수의 이전 날짜를 추적하고 다음 루프 반복에서 비교할 수 있습니다. 비교를 한 후에 현재 값을 포함하도록 업데이트합니다. 다음 반복은 동일한 비교와 변수 할당을 할 수 있습니다.

기본 아이디어는 : 당신이 GROUPING 같은 것을 사용하여 데이터베이스 쿼리에서이 작업을 수행 할 수 있어야한다처럼

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

정렬 덕분에 존