php - 如何从php中的对象获取国家代码?
问题描述
我是 php/laravel 的初学者。
我有对象数组
这是示例对象:
Geocoder\Provider\Nominatim\Model\NominatimAddress Object
(
[attribution:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright
[category:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => boundary
[displayName:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => Rumo, Comunità della Val di Non, TN, TAA, Italia
[osmType:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => relation
[osmId:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => 47201
[type:Geocoder\Provider\Nominatim\Model\NominatimAddress:private] => administrative
[coordinates:Geocoder\Model\Address:private] => Geocoder\Model\Coordinates Object
(
[latitude:Geocoder\Model\Coordinates:private] => 46.4610571
[longitude:Geocoder\Model\Coordinates:private] => 10.9882457
)
[bounds:Geocoder\Model\Address:private] => Geocoder\Model\Bounds Object
(
[south:Geocoder\Model\Bounds:private] => 46.4218546
[west:Geocoder\Model\Bounds:private] => 10.9308997
[north:Geocoder\Model\Bounds:private] => 46.4840451
[east:Geocoder\Model\Bounds:private] => 11.0481174
)
[streetNumber:Geocoder\Model\Address:private] =>
[streetName:Geocoder\Model\Address:private] =>
[subLocality:Geocoder\Model\Address:private] =>
[locality:Geocoder\Model\Address:private] => Rumo
[postalCode:Geocoder\Model\Address:private] =>
[adminLevels:Geocoder\Model\Address:private] => Geocoder\Model\AdminLevelCollection Object
(
[adminLevels:Geocoder\Model\AdminLevelCollection:private] => Array
(
[1] => Geocoder\Model\AdminLevel Object
(
[level:Geocoder\Model\AdminLevel:private] => 1
[name:Geocoder\Model\AdminLevel:private] => TAA
[code:Geocoder\Model\AdminLevel:private] =>
)
[2] => Geocoder\Model\AdminLevel Object
(
[level:Geocoder\Model\AdminLevel:private] => 2
[name:Geocoder\Model\AdminLevel:private] => Comunità della Val di Non
[code:Geocoder\Model\AdminLevel:private] =>
)
)
)
[country:Geocoder\Model\Address:private] => Geocoder\Model\Country Object
(
[name:Geocoder\Model\Country:private] => Italia
[code:Geocoder\Model\Country:private] => IT
)
[timezone:Geocoder\Model\Address:private] =>
[providedBy:Geocoder\Model\Address:private] => nominatim
)
我的PHP代码:
foreach (app('geocoder')->geocode($request->input('city'))->get() as $key => $value) {
//echo $value->country->code;
echo"<pre>"; print_r($value); echo"</pre>";
}
我想检查国家代码。如果 country->code == PL - 然后我手动显示文本:“它是正确的”,或者如果不是 - 那么我想显示文本“错误”。
我怎样才能做到?
我需要结果:
It's correct
It's correct
It's correct
wrong
It's correct
ETC
我怎样才能做到?
解决方案
Geocoder
要使用StringFormatter
类获取国家代码
$formatter = new \Geocoder\Formatter\StringFormatter();
$countryCode = $formatter->format($location, '%c');
文档中列出了其他有用的格式
- 街道号码:%n
- 街道名称:%S
- 城市(地区):%L
- 市区(次区域):%D
- 邮政编码(邮政编码):%z
- 管理员级别名称:%A1、%A2、%A3、%A4、%A5
- 管理员级别代码:%a1、%a2、%a3、%a4、%a5
- 国家:%C
- 国家代码: %c
- 时区:%T
推荐阅读
- java - 如何使用 Javax.mail 读取邮件正文中的 HTML 文本
- excel - 在 Excel 中创建唯一标识符,链接不同交货的相同记录
- python - 在谷歌 colab 中安装 python .egg
- python - 提取数组中的向上/向下趋势
- swift - 为什么 Swift Enum 生成对象,内部变量不能更改?
- python - 如何通过python字典中的值过滤sqlalchemy表
- javascript - JS嵌套reduce
- javascript - Javascript 自定义元素的 oninput 函数问题
- c++ - C ++无法弄清楚为什么它会给出误报(新手)
- azure-cosmosdb - 在没有完整投影的情况下查询 cosmos db 的嵌套值时是否需要维护文档层次结构