Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从数组中的stdClass对象中检索值_Php_Arrays_Object_Stdclass - Fatal编程技术网

Php 如何从数组中的stdClass对象中检索值

Php 如何从数组中的stdClass对象中检索值,php,arrays,object,stdclass,Php,Arrays,Object,Stdclass,有如下数组: Array ( [0] => stdClass Object ( [city_id] => 2222 [city_name] => newCity ) [1] => stdClass Object ( [city_id] => 4444 [city_name] => oldCity ) [2] => stdClass Object (

有如下数组:

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\u id
当我设置
city\u name
时,如何在我的代码中获取它


例如,如果我为
city\u name
设置
newCity2
,那么我会看到
city\u id
6666
,等等。

您需要将其作为

foreach($data as $key=>$val){
  echo 'City ID ::'.$val->city_id."<br />";
  echo 'City Name ::'.$val->city_name."<br />";
}
foreach($key=>$val的数据){
回显“城市ID::”。$val->City_ID。“
”; echo“城市名称::”.$val->City_Name.“
”; }
如果您想查看特定数据,则可以根据需要修改上述内容

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);
foreach($key=>$val的数据){
如果($val->city_name=='newCity2'){
回显“城市ID::”。$val->City_ID。“
”; 打破 } } 函数getCityIDByName($cityname,$data){ $return=''; foreach($key=>$val的数据){ 如果($val->city_name==$cityname){ $return=$val->city\u id 打破 } } return$return; } $city_id=getCityIDByName('newCity2',$data);
您必须迭代数组并检查
city\u name
以获得相应的ID。您也可以先这样做,以
city\u name
作为键,以
city\u ID
作为值来设置数组

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

.. 也许是这样的?city_name的值不是静态的,而是动态的。当我在问题中更新时,您可以创建一个函数来实现这一点。请在另一个答案中查看我与@Explosion Pills的对话,两个答案都是相同的,但不适用于我:(我确实像你一样设置了,但当我想查看结果时,得到了错误
未定义变量:cityId
,我的代码是:
$city='oldCity';foreach($results as$value){$cityName=$value->city\u name;if($cityName=$city){$cityId=$value->city\id;}var\u dump($cityId);exit;
@sIiiS这意味着没有找到名为
oldCity
的城市我以前设置过
$city='oldCity';
正如您在我的代码中看到的,但是为什么找不到它呢?@sIiiS因为它不在那里?取决于
$results
$results
的值与
$array
的值相同,而在
 $results
在我的主要Q中,oldCity可用