Non ho bene capito che cosa vuoi fare, comunque qua c'è il codice corretto e funzionale:
Codice PHP:
<?php
//la variabile con le variabili
$data = "&lat=38.175958&long=13.091019&name=PALERMO&c=1&lat=45.6484&long=12.194422&name=TREVISO&c=1&lat=38.1677&long=13.0645&name=2115&lat=38.4905&long=12.7925&name=2120&lat=39.027&long=12.3609&name=2125&lat=39.6833&long=11.996&name=2130&lat=40.4341&long=11.6071&name=2135&lat=41.0164&long=11.3086&name=2140&lat=41.6634&long=10.9701&name=2145&lat=42.149&long=10.7114&name=2150&lat=42.77&long=10.4127&name=2155&lat=43.5999&long=10.8016&name=2200&lat=44.2076&long=11.0894&name=2205&lat=44.75&long=11.274&name=2210&lat=45.2063&long=11.4321&name=2215&lat=45.517&long=11.732&name=2220&lat=45.605&long=12.0303&name=2225";
//creo l'array
$arr = Array();
//metto i dati nell'array
$arr = explode("&",$data);
//ora dovrei avere tutte le varibili
//mi serve creare un altro array con i nomi corretti
$arr2 = Array();
$i = 0;
foreach($arr as $value){
//cerco c
$c = strpos($value,"c=");
if($c !== false){
$c_value = substr($value, $c);
$arr2[$i]["c"]=$c_value;
$i++;
}else{
//se non trovo il c nonostante ci siano tutti e 3 i campi faccio l'increment
if($arr2[$i]["lat"] && $arr2[$i]["long"] && $arr2[$i]["name"]){
$i++;
}
}
//cerco lat. in questo caso lat aggiunge un array a arr2
$lat = strpos($value,"lat=");
if($lat !== false){
$name_value = substr($value, $name);
$arr2[$i]["lat"]=$name_value;
}
//cerco long
$long = strpos($value,"long=");
if($long !== false){
$long_value = substr($value, $long);
$arr2[$i]["long"]=$long_value;
}
//cerco name
$name = strpos($value,"name=");
if($name !== false){
$name_value = substr($value, $name);
$arr2[$i]["name"]=$name_value;
}
}
echo "<pre>";
print_r($arr2);
echo "</pre>";
?>