2011-03-28 4 views
0

안녕하세요. 누구든지이 문제로 올바른 방향으로 나를 가리킬 수 있는지 궁금합니다. 어디서부터 시작해야할지 모르겠습니다.중첩 배열을 반복하면서 같은 구조의 결과를 테스트하고 결과를 출력하십시오.

나는 전체 배열이 새에 저장됩니다 일치하는 경우, 특정 시간에 대한 'schedule_time를'테스트 그것을 통해 내가 할 수 있기를 원하는 것은

Array ( 
    [0] => Array ([day_id] => 1 [plan_id] => 3 [day_num] => 1 [schedule_time] => 1300866720 [checkin_time] => [fine] =>) 
    [1] => Array ([day_id] => 2 [plan_id] => 3 [day_num] => 2 [schedule_time] => 1300953120 [checkin_time] => [fine] =>) 
    [2] => Array ([day_id] => 3 [plan_id] => 3 [day_num] => 3 [schedule_time] => 1301039520 [checkin_time] => [fine] =>) 
    [3] => Array ([day_id] => 4 [plan_id] => 3 [day_num] => 4 [schedule_time] => 1301125920 [checkin_time] => [fine] =>)) 

이 루프이 구조를 다음과 배열이 정렬. 그래서 배열 0과 1이 출력 당신은 기본적으로 모든 이미 말했다이

Array ( 
     [0] => Array ([day_id] => 1 [plan_id] => 3 [day_num] => 1 [schedule_time] => 1300866720 [checkin_time] => [fine] =>) 
     [1] => Array ([day_id] => 2 [plan_id] => 3 [day_num] => 2 [schedule_time] => 1300953120 [checkin_time] => [fine] =>)) 

동일한 구조 등

답변

2

처럼 될 것입니다 일치 말한다. 기존의 것보다 arrayloop을 새로 만들어야하고 check some condition을 새로 작성해야합니다.

$new_array = array(); 

foreach($array as $item) { 
    if($item['schedule_time'] > something) { 
     $new_array[] = $item; 
    } 
} 

설명서를 읽는 것이 좋습니다.

+0

감사합니다. 나는 foreach 진술 주위에 머리를 쓰는 데 어려움을 겪고있다. 앉아서이 과정을 마음 속으로 배우십시오. – willmcneilly

+1

@willmcneilly : 이것에 대해 생각해보십시오. 배열은 요소 목록입니다. 'foreach' 루프는 반복 할 때마다 이들 요소 중 하나에 접근 할 수있게합니다. 그것은 영어에 가깝습니다. * 각 요소에 대해 이렇게하십시오. * 요소가 다시 배열이라는 사실은 차이를 만들지 않습니다. –

+1

그냥 완벽하게 작동하지만 두 번째 마지막 대괄호를 중괄호로 바꿔야한다고 덧붙이겠습니다. 작은 구문 오류. – willmcneilly

2
$mySpecialTimeToMatch = 0; //whatever time you want to match 
$newArray = array(); 
foreach ($arrayScheduledTasks as $task) { 
    foreach ($task as $key => $data) { 
     if("schedule_time" == $key && $mySpecialTimeToMatch == $data) { 
      $newArray[] = $task; 
     } 
    } 
} 

print_r($newArray); 
+0

왜 그렇게 복잡합니까? 내부 배열을 루프 할 필요가 없습니다. 불필요한 오버 헤드입니다. –

+0

정확합니다. 불필요한 오버 헤드입니다. 논리적 인 견지에서 말하면 더 의미가 있습니다. 중첩 배열은 중첩 루프와 일치합니다. 속도가 문제라면 Felix의 솔루션을 사용하십시오. –

+0

@SeanC .: 아니오, 이해가되지 않습니다. 하나는 배열을 사용하여'O (1)'액세스 시간을 갖는다. '5th '요소에 접근하고 싶다면'$ a [5]'를하고'i == 5'까지'for' 루프를 사용하지 마십시오. –

관련 문제