Php форматирование Google размещает выходной массив - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно отформатировать вывод адреса Google Мест на карте. Я хочу удалить все слева от последней разделительной строки, а также удалить страну (которая также содержится в выходных данных). Вот пример:

Вывод Google

[address] => Rua da Liberdade - Aparecida, Santos - SP, Brasil
[lat] => -23.9713022
[lng] => -46.3037377
[zoom] => 14
[place_id] => EjBSLiBkYSBMaWJlcmRhZGUgLSBBcGFyZWNpZGEsIFNhbnRvcyAtIFNQLCBCcmF6aWwiLiosChQKEgkfHjkSSwLOlBFOJU9QNBXTDhIUChIJUcEPMUYCzpQRAVML1qqHE18
[name] => Rua da Liberdade
[street_name] => Rua da Liberdade
[street_name_short] => R. da Liberdade
[state] => São Paulo
[state_short] => SP
[country] => Brasil
[country_short] => BR

Что мне нужно ...

Руа да Либердаде - Апаресида, Сантос - СП , Бразилия

т.е.

Aparecida, Santos - SP

Чтобы удалить страну, я пытался использовать str_replace с помощью ключа country:

$locations = get_field( 'profile-location', 'user_' .$userid );
if ( $locations ) {
    $location_format = str_replace( $locations['country'], '', $locations['address'] );
}
return $location_format;

1 Ответ

1 голос
/ 26 марта 2020

Вы можете извлечь нужные фрагменты информации из массива $locations в новый массив, пропустив отсутствующие фрагменты. Тогда это может быть implode d, чтобы сделать выходной адрес:

$address = [];
if (isset($locations['neighborhood'])) $address[] = $locations['neighborhood'];
if (isset($locations['city'])) $address[] = $locations['city'];
if (isset($locations['state'])) $address[] = $locations['state'];
elseif (isset($locations['state_short'])) $address[] = $locations['state_short'];

$address = implode(', ', $address);
echo $address;

Демо на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...