2013-09-23 47 views
0

如何在循環後使用返回的數據返回$ value?我認爲要在循環之前創建數組,並將其等於$ v以在循環之後使用它,但它不起作用。如何在foreach循環外使用變量

有關如何解決此問題的任何想法?

// 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 
+1

使用'break;'一旦得到該值。 –

回答

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);     
    } 
} 
} 
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) 
0

如果喜歡用 '迴歸' 試試這個。

$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(); 
} 
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;