+1  A: 

Service layer is probably the way I'd go. So you'd create a service class that looks something like this:

class Your_Service_Import
{
    public function importFromCsv($csv)
    {
        // etc.
    }
}

you'd then move all of your controller method code that's after the csv_to_array call into that method, leaving the end of your controller method looking something like this:

$feed = $this->csv_to_array(trim($response->getBody()));

$service = new Your_Service_Import();
$service->importFromCsv($feed);

This makes it easier to test your import code (since it's in a standalone class) and easier to reuse in other parts of your application.

Tim Fountain
A: 

I'd go one step (or two steps) further than @Tim Fountain

  1. Create a Service or Domain Helper that takes a start, end (and can be configured with a username password and url) and returns the csv list as an array.
  2. Create a Service that maps a known dimension array (the csv) and maps it onto the database.

Your controller will then just be

$start = $this->getRequest()->getParam('start');
$end = $this->getRequest()->getParam('end');
$dataService = new Your_Service_Get();
$data = $dataService->get($start, $end);
$mapService = new Your_Service_Map();
$mapService->map($data);
Justin
Justin, when you are inserting however, you couldn't use a single Data Mapper class can you? You would need several?
Laykes