Как мне разбить элементы массива на подмассивы?
Передайте в str_getcsv остальные параметры. Дефолтный delimiter не подходит для ваших данных.
Анонимной функцией в array_map или через foreach.
функция str_getcsv по умолчанию использует запятую как разделитеь$array = array_map("str_getcsv", explode("\n", str_replace(";",",",$csv)));