2015-11-26 105 views
0

我有一個Json文件,我需要提取「tempm」我嘗試使用不同的形式,但不能永遠只得到該值。 enter image description here1] 1Json數組提取值PHP

$history1 = ("http://link_to_my_api"); 
echo $history1; 
$json_string = file_get_contents($history1); 
$parsed_json = json_decode($json_string); 
$location = $parsed_json->{'history'}->{'observations'}; 

var_dump($location[0]); 
+0

我認爲這將是更好的將其轉換爲一個數組而不是對象。添加true作爲json_decode的第二個參數,這使得它更容易導航。 – Daniel

+0

多數民衆贊成它:D謝謝 –

+0

我發佈它作爲答案,將其標記爲接受關閉該問題:) – Daniel

回答

0

通過添加作爲真實的json_encode第二參數轉換的JSON輸出到陣列而不是一個對象,使一切更易於導航。

0

未經檢驗的,但我想這應該工作:

function ext($obj,$name){ 
    $ret=array(); 
    $rem=array(); 
    $f=function() use(&$rem,&$ret,$name){ 
     $v=reset($rem); 
     assert(NULL!==($key1=key($rem))); 
     unset($rem[$key1]); 
     foreach($v as $key2=>$value){ 
      if($key2==$name){$ret[]=$value;} 
      if(is_array($value) || is_object($value)) 
      { 
       $rem[]=$value; 
      } 
     } 
    }; 
    $rem[]=$obj; 
    while(!empty($rem)) 
    { 
     $f(); 
    }  
    return $ret; 
} 

$tempm_arr=ext($parsed_json,'tempm'); 
$tempm=$tempm_arr[0]; 

警告:這可能會導致與遞歸引用的對象/數組無限循環..