PHP 5.5+ two-line solution, using array_chunk
and array_column
:
$input="1-350,9-390.99";
$chunks = array_chunk(preg_split('/(-|,)/', $input), 2);
$result = array_combine(array_column($chunks, 0), array_column($chunks, 1));
print_r($result);
Yields:
Array
(
[1] => 350
[9] => 390.99
)