array( * 'projectname' => array( * array('start'=>'2012-08-08 10:44', 'end'=>'2012-08-08 11:44', 'subject'=>'subject'), * array('start'=>'2012-08-08 11:44', 'end'=>'2012-08-08 12:44', 'subject'=>'subject 2'), * ) * ) * ) */ public function import($lines) { $clients = array(); $date = ''; foreach($lines as $line) { $line = trim($line); if ($line == '') { continue; } if (preg_match('/^(\d{4}-\d{2}-\d{2})$/', $line, $tok)) { $date = $tok[1]; } elseif (preg_match('/^(\d\d:\d\d)-(\d\d:\d\d) # \[([^:]+):([^]]+)\] (.*)/', $line, $tok)) { $client_key = $tok[3]; $project_key = $tok[4]; if (!array_key_exists($client_key, $clients)) { $clients[$client_key] = array($project_key=>array()); } elseif (!array_key_exists($project_key, $clients[$client_key])) { $clients[$client_key][$project_key] = array(); } $clients[$client_key][$project_key][] = array('start'=>$date.' ' . $tok[1], 'end'=>$date.' '.$tok[2], 'subject'=>$tok[5]); } } return $clients; } } ?>