0

如何在循环后返回 $value 及其返回的数据?我认为在循环之前创建数组并将其等同于 $v 以在循环之后使用它,但它不起作用。

关于如何解决这个问题的任何想法?

// create array
$v = array();

// start loop
foreach ($this->json_data->locations as $key => $value) {
    if ($value->country_name == $data['city']->country_name)
        // return $value with data
        return $v = $value ; 
}

echo $v->country_name
4

4 回答 4

4
try this:

$v = array(); 
foreach ($this->json_data->locations as $key => $value) {
 if ($value->country_name == $data['city']->country_name)
 {
    if(!in_array($value,$v))
    {
     array_push($v,$value);                 
    }
 }
}
于 2013-09-23T09:29:13.483 回答
2

尝试这个

 $v = array();
    $i=0;
    // start loop
                foreach ($this->json_data->locations as $key => $value) {
                    if ($value->country_name == $data['city']->country_name)
    // return $value with data
                         $i++;
                         $v[$i] = $value ; 
                }
    //print $v
                print_r($v)
于 2013-09-23T09:32:24.410 回答
0

如果喜欢使用'return'试试这个。

$v = iLikeUsingReturn($this,$data);

function iLikeUsingReturn($t,$d){
  foreach ($t->json_data->locations as $key => $value) {
                if ($value->country_name == $d['city']->country_name)
                    return $value ; 
  }
  return array();
}
于 2013-09-23T09:32:50.053 回答
0

我认为以下代码会对您有所帮助。

// create array
     $v = array();
// start loop
        foreach ($this->json_data->locations as $key => $value) {
            if ($value->country_name == $data['city']->country_name)
// return $value with data                  
           array_push($v, $value); 
        }
             return $v;
于 2013-09-23T09:33:44.863 回答