Php格式化Google places输出数组

Php格式化Google places输出数组,php,google-maps,google-places-api,Php,Google Maps,Google Places Api,我需要格式化GooglePlaces地址的输出。我想删除最后一行分隔符左边的所有内容,并删除国家(也包含在输出中)。以下是一个例子: 谷歌输出 [address] => Rua da Liberdade - Aparecida, Santos - SP, Brasil [lat] => -23.9713022 [lng] => -46.3037377 [zoom] => 14 [place_id] => EjBSLiBkYSBMaWJlcmRhZGUgLSBBcGF

我需要格式化GooglePlaces地址的输出。我想删除最后一行分隔符左边的所有内容,并删除国家(也包含在输出中)。以下是一个例子:

谷歌输出

[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
我需要什么…

自由之路-阿帕雷西达,桑托斯-SP,巴西

i、 e

要删除国家/地区,我尝试使用
str\u replace
country

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

您可以将所需的信息片段从
$locations
数组提取到新数组中,跳过不存在的片段。然后,这可以是
内爆
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;

它们是否总是格式化为
此处的某些内容-其他一些内容-更多内容
?我编辑了我的问题,您应该重新安排单词以更好地回答问题,例如,您的主题应该是问题。你需要做出一个很好的解释,就像我根本不知道一样,然后你会得到一个很好的答案。有时输出会更改为:[address]=>Santos,SP,Brasil@SHARKDEV在这种情况下,阵列的其余部分是什么样子的?你的预期产出是什么?预期产出总是没有大道街之类的东西,并且移除国家,总是让所有东西都没有这些东西,谷歌不会返回一致的数据。@SHARKDEV尝试一下我编辑的代码。如果没有看到大量的样本数据,很难判断它是否有效,但根据您的样本和描述,它应该是接近的。我相信一个正则表达式,删除地址已经解决了问题,离开这个国家并不是那么糟糕
$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;