2011-09-01 5 views
0

제목이 다소 모호하지만,이 질문을하는 법을 알지 못했습니다.서로 다른 루프를 가진 배열 끼우기

내 양식에 체크 박스가 있습니다. 검사를 받으면 값이 내 데이터베이스에 게시됩니다. 그러나, 그들이 체크하지 않을 때, 나는 체크되지 않은 것을 한 번 추적 할 수 없다. 왜냐하면 그것은 잘 작동하기 때문이다.

예를 들어, 21-08-2011까지 25-08-2011까지 실행되는 이벤트의 경우 게스트가 21 일과 23 일 티켓 만 필요로 할 때 다음 어레이를 다시 얻습니다 (티켓은 그렇지 않습니다). 단지) 간결함을 위해, 최종 결과에 여기에 유일한 값 :

Array 
(
[2011-08-21] => Array 
    (
     [ticket] => 1 
    ) 

[2011-08-23] => Array 
    (
     [ticket] => 1 
    ) 

) 

그러나, 나는 또한 그가 티켓을 필요로하지 않는 다른 일을 추적하고자합니다. 그래서,이 같은 배열을 필요 :

Array 
(
    [2011-08-21] => Array 
     (
      [ticket] => 1 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 1 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 

    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 
) 

내가 (이 프로젝트에 필요한) 내 DB에서 모든 것을 추적 할 수 있습니다 그런 식으로.

첫 번째 배열을 두 번째 배열로 변환 할 수 있는지 잘 모르겠습니다. I는 다음과 같습니다 내 event_details 배열과 결합, 및 foreach는 루프와 함께 시도하고있다 : 나는 모든 이벤트 일 계산할 수 배열의 데이터와

Array 
(
    [eventID] => 1 
    [groupID] => 3 
    [name] => Moto GP 1 
    [startDate] => 2011-08-21 
    [endDate] => 2011-08-25 
    [number_of_days] => 5 
    [startDate_f] => 21/08/11 
    [endDate_f] => 25/08/11 
) 

,하지만 난 그냥 아주 확실하지 않다 정확하게 그것에 대해 어떻게 가야하는지. 어떤 도움이 필요합니까? 고마워.

답변

0

테스트되지 않은,하지만 뭔가 같은 :

$selected_days = /* Wherever you get the posted array data from */; 

$start = new DateTime($event_details['startDate']); 
$end = new DateTime($event_details['endDate']); 

while ($start <= $end) { 
    $key = $start->format('Y-m-d'); 

    if (!array_key_exists($key, $selected_days)) 
     $selected_days[$key] = array('ticket' => 0); 

    $start->modify('+1 day'); 
} 
+0

감사합니다, 당신은 영웅입니다. – cabaret

관련 문제