Php 检查对象中是否存在值

Php 检查对象中是否存在值,php,Php,如何检查对象中是否存在邻域值 { "results" : [ { "address_components" : [ { "long_name" : "2900", "short_name" : "2900", "types" : [ "street_number" ] }, { "long_name" : "Ranch Road 620 Nor

如何检查对象中是否存在邻域值

{
  "results" : [
  {
     "address_components" : [
        {
           "long_name" : "2900",
           "short_name" : "2900",
           "types" : [ "street_number" ]
        },
        {
           "long_name" : "Ranch Road 620 North",
           "short_name" : "Ranch Rd 620 N",
           "types" : [ "route" ]
        },
        {
           "long_name" : "Villas On Travis",
           "short_name" : "Villas On Travis",
           "types" : [ "neighborhood", "political" ]
        },
        {
           "long_name" : "Austin",
           "short_name" : "Austin",
           "types" : [ "locality", "political" ]
        },
        {
           "long_name" : "Travis County",
           "short_name" : "Travis County",
           "types" : [ "administrative_area_level_2", "political" ]
        },
        {
           "long_name" : "Texas",
           "short_name" : "TX",
           "types" : [ "administrative_area_level_1", "political" ]
        },
        {
           "long_name" : "United States",
           "short_name" : "US",
           "types" : [ "country", "political" ]
        },
        {
           "long_name" : "78734",
           "short_name" : "78734",
           "types" : [ "postal_code" ]
        },
        {
           "long_name" : "2209",
           "short_name" : "2209",
           "types" : [ "postal_code_suffix" ]
        }
     ]
   }
 ]
}
我试过了

if ($jsonarray->results[0]->address_components[2]->types == 'neighborhood') {
  $neighborhood = $jsonarray->results[0]->address_components[2]->long_name;
}
它是一个数组:

if (in_array('neighborhood', $jsonarray->results[0]->address_components[2]->types)) {
  $neighborhood = $jsonarray->results[0]->address_components[2]->long_name;
}
所以要检查所有这些,如果这是目的,如果只有一个
邻域

foreach($jsonarray->results[0]->address_components as $array) {
    if (in_array('neighborhood', $array->types)) {
      $neighborhood = $array->long_name;
      break;
    }
}
或获取所有已找到对象的
$邻域
数组:

foreach($jsonarray->results[0]->address_components as $array) {
    if (in_array('neighborhood', $array->types)) {
      $neighborhood[] = $array->long_name;
    }
}
它是一个数组:

if (in_array('neighborhood', $jsonarray->results[0]->address_components[2]->types)) {
  $neighborhood = $jsonarray->results[0]->address_components[2]->long_name;
}
所以要检查所有这些,如果这是目的,如果只有一个
邻域

foreach($jsonarray->results[0]->address_components as $array) {
    if (in_array('neighborhood', $array->types)) {
      $neighborhood = $array->long_name;
      break;
    }
}
或获取所有已找到对象的
$邻域
数组:

foreach($jsonarray->results[0]->address_components as $array) {
    if (in_array('neighborhood', $array->types)) {
      $neighborhood[] = $array->long_name;
    }
}

在对象中的任何位置,或在特定位置?类型仍然是一个数组,因此您不需要说类型[0]只有一个位置:您可能希望增加样本大小。不同的查询将返回非常不同的结果。您不能期望找到“邻域”始终作为第一个结果的第三个组成部分。您必须迭代每个结果和每个结果中的每个组件,并从中选择数据;而不是相反,在对象中的任何位置或特定位置?类型仍然是一个数组,因此您不需要说类型[0]只有一个位置:您可能希望增加样本大小。不同的查询将返回非常不同的结果。您不能期望找到“邻域”始终作为第一个结果的第三个组成部分。您必须迭代每个结果和每个结果中的每个组件,并从中选择数据;不是另一种情况。@santa虽然从技术上讲不正确,但我怀疑如此直接地处理这个问题是否明智。一些循环可能是正确的……是的,这是一个可以扩展的例子。虽然从技术上讲并不错误,但我怀疑如此直接地处理这个问题是否明智。一些循环可能是有序的…是的,这是一个扩展的例子。是否有任何保证,该值将始终精确地位于该位置…?但是,根据他正在查找的代码,地址组件[2]中的保证是什么,Abracadvers way更为绝对,尽管有任何保证值始终位于该位置…?但地址组件[2]中的保证是什么,根据他正在寻找的代码,Abracadvers way更为绝对