如何在foreach循环外部使用变量

时间:2013-09-23 09:22:35

标签: php

如何在循环后使用返回的数据返回$ 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 个答案:

答案 0 :(得分: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);                 
    }
 }
}

答案 1 :(得分: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)

答案 2 :(得分: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();
}

答案 3 :(得分: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;