2016-08-16 7 views
0

Ich habe diese Saite:Extract Wert aus einer mehrdimensionalen Matrix

O:37:"Ivory\GoogleMap\Service\Base\Distance":2:{s:43:"Ivory\GoogleMap\Service\Base\Distancetext";s:6:"572 km";s:44:"Ivory\GoogleMap\Service\Base\Distancevalue";i:572343;} 

Notwendigkeit, nur 572.343 Wert zurück.

+2

1) 'unserialize()' it 2) Zugriff auf die Eigenschaft – Rizier123

+0

Sieht aus wie eine abgeschnittene php serialisierte Zeichenfolge. Wenn Sie die vollständige Zeichenfolge haben, verwenden Sie 'unserialize', um eine Array-Struktur zu erhalten. – Steve

+1

Woher haben Sie diese Zeichenfolge? Es kann einen besseren Weg geben, diesen Wert zu erhalten. –

Antwort

0

Dies ist kein Array, sondern ein Google-Objekt, das serialisiert wurde. Es erwartet, dass Sie ein Objekt namens Distance in dem Namespace Ivory\GoogleMap\Service\Base\ haben.

Ich habe eine Github Repo gefunden, die damit zu tun scheint.

Wenn das nicht das, was Sie wollen Sie etwas ein bisschen unelegant wie das Lesen rückwärts vom Ende der Zeichenfolge versuchen könnte, bis Sie alle Ziffern haben.

str_replace(';}','',$string); 
$output = ''; 
for ($i = -1; is_numeric(substr($string, $i,1)); $i--) { 
    $output = substr($string, $i,1).$output; 
} 
echo $output; 

oder Sie könnten versuchen, explode mit ‚"; i:‘. Als Token und das zweite Element greifen

$pieces = explode('";i:', $string); 
$number = str_replace(';}','',$pieces[1]); 
echo $number; 

Oder Sie könnten mit einem regex etwas ein bisschen stabiler machen (die als Sie könnten raten, ich genieße es nicht.)

Update: von OP kommentiert es scheint, dass sie tatsächlich kämpfen mit einer Reihe von Google Ivory-Objekte und keine Zeichenfolge überhaupt. Das ist eine ganz andere Frage wenn das so wäre die Zeichenfolge, die sie analysieren mussten, würde meine Antwort helfen.

+1

Gelöst, um 2 foreach Schleife zu verwenden, wie im Dokument erwähnt. Dann erhalten Sie Objekt Propreties $ Element-> GetDistance(): .... jetzt poste ich eine andere Frage, weil es Json-Problem erzeugt – rubenSousa

Verwandte Themen