2016-05-15 9 views
2

ich mit Streichern von Breite/Länge in PHP von Android wie dies ein Array empfange:Holen Zahlen von Array (Lat Long) in PHP

$array = array(
"parametros1" =>"lat/lng: (-33.36808,-70.74779)", 
"parametros2" =>"lat/lng: (-33.36826,-70.74685)", 
"parametros3" =>"lat/lng: (-33.36867,-70.745)", 
"parametros4" =>"lat/lng: (-33.36875,-70.74462)", 
"parametros5" =>"lat/lng: (-33.36879,-70.74436)", 
"parametros6" =>"lat/lng: (-33.36882,-70.74415)", 
"parametros7" =>"lat/lng: (-33.36888,-70.74387)", 
"parametros8" =>"lat/lng: (-33.36905,-70.74364)", 
"parametros9" =>"lat/lng: (-33.3691,-70.74347)", 
"parametros10"=>"lat/lng: (-33.36948,-70.7417)" 
); 

Und ich möchte die Werte von Lat/lng speichern in 2 Arrays, wie kann ich die Werte getrennt bekommen?

Ps: ->$latLng bis 2 Arrays Sorry für mein schlechtes Englisch, Thanks.-

+0

was meinst du? Lat in 1 Array und lng in einem anderen? – davejal

+0

Ja, 2 Array (1 Lat, 1 lng) oder auch 1 Array mit 2 Subarrays (1 Lat, 1 lng). – BCoral

Antwort

2

Das wird ein wenig gewunden bekommen, und das ist, verursachen einige Datenverarbeitung benötigt wird.

$lat = array(); 
$lon = array(); 

foreach($array as $k => $v){ 
$v = str_replace('lat/lng: (','',$v); 
$v = str_replace(')','',$v); 
$v = explode(',', $v); 
$lat[] = $v[0]; 
$lon[] = $v[1]; 
} 

print_r($lat); 
print_r($lon); 
+0

Wow, Danke Mann, es funktioniert sehr gut, Sie sparen meinen Tag :), – BCoral

+0

Ich liebe Datenverarbeitung: P viel Spaß! – iGNEOS

2

Verwenden list die Ergebnisse explode auf preg_replace abzubilden.

foreach($array as $key => $latLng){ 
    list($arrayLat[],$arrayLng[]) = explode(",", preg_replace('/[^-\d.,]/', '', $latLng)); 
} 

Ideone Demo 2

+0

preg_match ist langsam. das ist wahr. (manchmal benötigt) – iGNEOS

+0

dies kann nicht gut empfangen werden, aber einige Geschwindigkeitsprüfungen auf Regex, es ist eines dieser mächtigen Dinge, die Sie nur verwenden, wenn Sie müssen. – iGNEOS

+1

Akzeptierte Antwort: 'OK (0.012 sec real, 0.015 sec wall, 14 MB, 227 syscalls)' https://eval.in/571668 Meine erste Lösung: 'OK (0.008 sec real, 0.010 sec wall, 14 MB , 227 syscalls) 'https://eval.in/571670 Meine zweite Lösung: ' OK (0.008 sec real, 0.011 sec Wand, 14 MB, 228 syscalls) 'https://eval.in/571669 –