요구사항: 시작 및 종료 시간을 기준으로 한 일별 데이터 통계
현재 데이터베이스에서 검색된 데이터에는 다음과 같은 구조의 2차원 배열이 약 10개 정도 있습니다.
<code>[ '0' => [ 'time' => '2016-8-3', 'data1'=> 'xxx', ... ] ]</code>
각 배열에는 필수 필드가 있으므로 이러한 10개의 2차원 배열을 결합해야 합니다.
날짜를 기준으로 데이터를 탐색하고 검색합니다
<code>while (strtotime($start_time) < strtotime($end_time)) { // 10个foreach foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } ... $start_time = strtotime($start_time . ' +1 day'); }</code>
결합하고 싶은 최종 데이터 구조:
<code>[ '2016-8-3' => [ 'data' => '', ... ], '2016-8-4' => [ 'data' => '', ... ] .. ]</code>
그런데 그 동안의 성능이 매우 좋지 않은 것 같고, 데이터를 소진할 수 없는 것 같습니다. 오랜 시간을 기다린 후에는
최대 실행 시간 30초를 초과했습니다
라는 메시지가 바로 표시됩니다. 좋은 제안이 있나요?
요구사항: 시작 및 종료 시간을 기준으로 한 일별 데이터 통계
현재 데이터베이스에서 검색된 데이터에는 다음과 같은 구조의 2차원 배열이 약 10개 정도 있습니다.
<code>[ '0' => [ 'time' => '2016-8-3', 'data1'=> 'xxx', ... ] ]</code>
각 배열에는 필수 필드가 있으므로 이러한 10개의 2차원 배열을 결합해야 합니다.
날짜를 기준으로 데이터를 탐색하고 검색합니다
<code>while (strtotime($start_time) < strtotime($end_time)) { // 10个foreach foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } foreach($arr as $k => $v) { if (strtotime($start_time) == strtotime($v['time'])) { $data[] = $v[]; ... } } ... $start_time = strtotime($start_time . ' +1 day'); }</code>
결합하고 싶은 최종 데이터 구조:
<code>[ '2016-8-3' => [ 'data' => '', ... ], '2016-8-4' => [ 'data' => '', ... ] .. ]</code>
그런데 그 동안의 성능이 매우 좋지 않은 것 같고, 데이터를 소진할 수 없는 것 같습니다. 오랜 시간을 기다린 후에는
최대 실행 시간 30초를 초과했습니다
라는 메시지가 바로 표시됩니다. 좋은 제안이 있나요?
루프에 문제가 있어 무한 루프가 발생합니다. 각 루프의 $start_time 및 $end_time을 인쇄할 수 있습니다. strtotime($start_time) < strtotime($end_time)
항상 참