public function __construct($file_name) { $this->partner_group_list = array(); $partner_group = null; $content = file_get_contents($file_name); $lines = explode("\n", $content); foreach ($lines as $line) { $trimmed_line = trim($line); if (!$trimmed_line) { continue; } if (strpos($trimmed_line, ":")) { //echo "new group: $trimmed_line<br>"; // add the previous $partner_group (if exists) to the list if ($partner_group) { $partner_group->calculateValue(); $this->partner_group_list[$partner_group->name] = $partner_group; } // define a new partnerGroup $partner_group = new partnerGroup(); list($name, $fields) = explode(":", $trimmed_line); $partner_group->setName($name); $partner_group->setField($fields); //echo "new group: [$partner_group->name]<br>"; } else { if ($partner_group) { //echo "data: $trimmed_line<br>"; // add it's data $partner_group->addToValue($trimmed_line); } else { // error - data comes before the first partner_group ! echo "Attempting to add {$trimmed_line} to no group at all!"; } } } if ($partner_group) { $partner_group->calculateValue(); $this->partner_group_list[$partner_group->name] = $partner_group; } // print_r ( $partner_group_list ); }