Well, you could first explode against the ";", and then again against the "," inside each of those. So something like:
$CLC_string = "london,en-gb,united kingdom;manchester,en-gb,united kingdom;madrid,es,spain";
$first = explode(';', $CLC);
$cities = array();
foreach($first as $sec)
{
$info = explode(',', $sec);
$cities[$info[0]] = array('language'=>$info[1], 'country'=>$info[2]);
}
Now you can use the $cities array to get whatever information you want by just using the city name as the array key, so to get the language, you'd say:
$lang = $cities['london']['language'];
$country = $cities['london']['country'];
This allows you to be flexible, and add more cities as you need.