Bueno el problema que tienes es por el punto y coma del final que hace que se cree un array vacío:
Código PHP:
Ver original<?php
$stringProductos = "3,7;27,2;1,4;12,10;";
//Quitamos los punto y coma que sobran
$stringProductos = trim($stringProductos, ';');
$lines = explode(";", $stringProductos);
foreach ( $lines as $line ){
//Aquí maneja la clave como lo tienes o como yo lo tengo
$array[] = array($values[0] => $values[1]); }
echo '<pre>';
echo '</pre>';
Saludos.