Это не массив, а объект Google, который был сериализован. Он ожидает, что у вас есть объект с именем Distance
в пространстве имен Ivory\GoogleMap\Service\Base\
.
Я нашел репозиторий github, который, кажется, справляется с этим.
Если это не то, что вы хотите, вы можете попробовать что-то немного безвкусное, как чтение в обратном направлении от конца строки до тех пор, пока есть все цифры.
str_replace(';}','',$string);
$output = '';
for ($i = -1; is_numeric(substr($string, $i,1)); $i--) {
$output = substr($string, $i,1).$output;
}
echo $output;
или вы могли бы попробовать explode
с помощью «", я:». В качестве маркеров и захватить второй элемент
$pieces = explode('";i:', $string);
$number = str_replace(';}','',$pieces[1]);
echo $number;
Или вы могли бы сделать что-то немного более стабильное с регулярным выражением (которое, как вы можете догадаться, я не люблю)
Update:... из ОП комментарии, кажется, что они на самом деле борются с помощью набора объектов Google Ivory, а не строка вообще это совершенно другой вопрос, однако , если бы это было строка, которую они должны были проанализировать, мой ответ помог бы.
1) 'unserialize()' it 2) Доступ к объекту – Rizier123
Выглядит как обрезанная сериализованная строка php. Если у вас есть полная строка, используйте 'unserialize' для получения структуры массива. – Steve
. Где вы получили эту строку? Возможно, лучший способ получить эту ценность. –