public function formatRecord(array &$records = NULL, $record) { $result = parent::formatRecord($records, $record); if ($result) { $this->errorUnsupportedChainOfResultFormatters(); } $object = new stdClass(); foreach ($record as $columnName => $columnValue) { $index = strpos($columnName, '.'); if ($index === FALSE) { $object->{$columnName} = $columnValue; } else { $properties = explode('.', $columnName); $obj = $object; for ($i = 0, $count = count($properties); $i < $count; $i++) { $property = $properties[$i]; if ($i == $count - 1) { $obj->{$property} = $columnValue; } else { if (!isset($obj->{$property})) { $obj->{$property} = new stdClass(); } $obj = $obj->{$property}; } } } } $records[] = $object; return TRUE; }