【问题标题】:How to get map array by filter spesific in php如何通过特定于php的过滤器获取地图数组
【发布时间】:2020-09-19 06:53:39
【问题描述】:

我想获取过滤器数组的值。因为数组是动态索引位置 我有如下响应 json

{
   "plus_code" : {
      "compound_code" : "589V+GM Kasihan, Bantul Regency, Special Region of Yogyakarta, Indonesia",
      "global_code" : "6P4G589V+GM"
   },
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "11",
               "short_name" : "11",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Jalan Madukismo",
               "short_name" : "Jl. Madukismo",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Padokan Kidul",
               "short_name" : "Padokan Kidul",
               "types" : [ "administrative_area_level_5", "political" ]
            },
            {
               "long_name" : "Tirtonirmolo",
               "short_name" : "Tirtonirmolo",
               "types" : [ "administrative_area_level_4", "political" ]
            },
            {
               "long_name" : "Kecamatan Kasihan",
               "short_name" : "Kec. Kasihan",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Bantul",
               "short_name" : "Bantul",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Daerah Istimewa Yogyakarta",
               "short_name" : "Jogja",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Indonesia",
               "short_name" : "ID",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "55184",
               "short_name" : "55184",
               "types" : [ "postal_code" ]
            }
         ],
         "place_id" : "ChIJtwRkSdcHTCwRhfStG-dNe-M",
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

例如,我想获取“administrative_area_level_3”的值。但是该键并不总是在该索引中,然后我想按键“administrative_area_level_3”进行过滤

【问题讨论】:

  • 代码在哪里?
  • 您可以做的是将 Json 转换为数组并循环遍历数组并为所有过滤器类型分别使用 if 语句并在那里处理过滤器逻辑。

标签: php arrays json filter


【解决方案1】:

您可以在“address_components”列表中使用迭代,然后匹配“types”中包含管理区域_level_3 的值。例如:

foreach ($json['results'][0]['address_components'] as $value) {
  if(in_array("administrative_area_level_3", $value['types'])){
    $data = $value;
    break;
  }
}

print_r($data);

【讨论】:

    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 2017-06-20
    • 2020-10-11
    • 1970-01-01
    • 2011-02-15
    • 2016-07-25
    • 2018-05-02
    • 2019-06-17
    相关资源
    最近更新 更多