【问题标题】:How to retrive value from stdClass Object in array如何从数组中的stdClass对象中检索值
【发布时间】:2014-04-27 22:06:04
【问题描述】:

有如下数组:

Array
(
[0] => stdClass Object
    (
        [city_id] => 2222
        [city_name] => newCity
    )

[1] => stdClass Object
    (
        [city_id] => 4444
        [city_name] => oldCity
    )

[2] => stdClass Object
    (
        [city_id] => 6666
        [city_name] => newCity2

    )
)

现在,当我设置city_name 时,我想获得city_id,如何在我的代码中获得它?

例如,如果我将newCity2 设置为city_name,那么我将看到6666 设置为city_id 等等。

【问题讨论】:

标签: php arrays object stdclass


【解决方案1】:

您必须遍历数组并检查 city_name 以获取相应的 ID。您最初也可以这样做,以设置一个以 city_name 为键、city_id 为值的数组。

foreach ($array as $value) {
    if ($value->city_name == $compareCityName) {
        $city_id = $value->city_id;
    }
}

【讨论】:

  • 我确实像你一样设置,但是当我想查看结果时出现错误Undefined variable: cityId,我的代码是:$city = 'oldCity'; foreach($results as $value){ $cityName = $value->city_name; if ($cityName == $city) { $cityId = $value->city_id; } } var_dump ($cityId); exit;
  • @sIiiS 表示没有找到名为 oldCity 的城市
  • 我确实在$city = 'oldCity';之前设置了,你可以在我的代码中看到,但是为什么找不到呢?
  • @sIiiS 因为它不存在?取决于$results的内容
  • $results 的值与 $array 相同,但在我的主 Q 中的 $results 中,oldCity 可用
【解决方案2】:

你需要循环遍历它

foreach($data as $key=>$val){
  echo 'City ID ::'.$val->city_id."<br />";
  echo 'City Name ::'.$val->city_name."<br />";
}

如果您想查看特定数据,则可以在上面修改为

foreach($data as $key=>$val){
  if($val->city_name == 'newCity2'){
   echo 'City ID ::'.$val->city_id."<br />";
   break;
  }
}


function getCityIDByName($cityname,$data){

    $return = '';
    foreach($data as $key=>$val){
          if($val->city_name == $cityname){
           $return = $val->city_id
           break;
          }
    }
    return $return ;
}

$city_id = getCityIDByName ('newCity2',$data);

【讨论】:

  • city_name 的值不是静态的,而是动态的
  • 好吧,您可以根据我在问题中更新的内容创建一个函数。
  • 请在另一个答案中查看我与@Explosion Pills 的对话,两个答案相同但对我不起作用:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 2013-06-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多