2012-07-26 2 views
0

배열이 있으므로 필요한 정보 만 포함하도록이 배열을 잘라야합니다.특정 값만 포함하도록 다차원 배열 자르기

참조 날짜의 형식은 다음과 같습니다.

$reference_date = '20120624'; 
내가이 배열을 설정해야

...이에

array(3) { 
     [0]=> 
     array(3) { 
     ["ID"]=> 
     string(2) "15" 
     ["start_time"]=> 
     string(19) "2012-06-24 08:00:00" 
     ["end_time"]=> 
     string(19) "2012-06-24 17:00:59" 
     } 
     [1]=> 
     array(3) { 
     ["ID"]=> 
     string(2) "28" 
     ["start_time"]=> 
     string(19) "2012-07-26 18:00:00" 
     ["end_time"]=> 
     string(19) "2012-07-26 22:00:59" 
     } 
     [2]=> 
     array(3) { 
     ["ID"]=> 
     string(2) "31" 
     ["start_time"]=> 
     string(19) "2012-07-28 00:00:00" 
     ["end_time"]=> 
     string(19) "2012-07-28 23:59:59" 
     } 
    } 

...

array(1) { 
     [0]=> 
     array(3) { 
     ["ID"]=> 
     string(2) "15" 
     ["start_time"]=> 
     string(19) "2012-06-24 08:00:00" 
     ["end_time"]=> 
     string(19) "2012-06-24 17:00:59" 
     } 

동일한 날짜에 더 이상의 배열이있을 수있다 (다른 시간) . 나는 이것들을 잘 보존 할 필요가있다.

저는 여러 가지 방법을 시도해 보았습니다. 그러나 저의 이해는 아직 그곳에 없습니다.

감사

답변

0
$reference_date = '20120624'; 
$reference_date = substr($reference_date, 0, 4).'-'.substr($reference_date, 4, 2).'-'.substr($reference_date, 6, 2); 

$result = array(); 
foreach($data as $item){ 
    if(substr($item['start_time'], 0, 10) == $reference_date || substr($item['end_time'], 0, 10) == $reference_date) 
     $result[] = $item; 
} 
+0

안녕하세요이 잘 작동합니다. 내가 어떻게 작동하는지 알았다면. 첫 번째 부분은 패턴 일치와 같습니다. 2 문자의 첫 번째 위치, 2의 4 위치 이후, 그리고 2의 6 위치 이후 ... 나머지는 la-la입니다. :( – anastymous