2012-02-14 24 views
0

我試圖從JSON訂閱源中使用特定的對象類型,並且很難指定它。使用代碼下面我抓住並打印特定陣列(最大)我想,從JSON指定PHP數組中的對象

$jsonurl = "LINK"; 
$json = file_get_contents($jsonurl,0,null,null); 
$json_output = json_decode($json,true); 
$max_output = $json_output["max"]; 

echo '<pre>'; 
print_r($max_output); 
echo '</pre>'; 

而從下面的陣列,所有我想使用的是每個陣列中的[1]對象。我如何指定並獲取這些值?

Array 
(
[0] => Array 
    (
     [0] => 1309924800000 
     [1] => 28877 
    ) 

[1] => Array 
    (
     [0] => 1310011200000 
     [1] => 29807 
    ) 

[2] => Array 
    (
     [0] => 1310097600000 
     [1] => 33345 
    ) 

[3] => Array 
    (
     [0] => 1310184000000 
     [1] => 33345 
    ) 

[4] => Array 
    (
     [0] => 1310270400000 
     [1] => 33345 
    ) 

[5] => Array 
    (
     [0] => 1310356800000 
     [1] => 40703 
    ) 
+0

的可能重複(http://stackoverflow.com/questions/1494953/is-there-a-function-to-extract-a-array-from-an-array-in-php) – 2012-02-14 18:59:36

回答

1

那麼你可以用array_map獲取這些值:

$max_output = array_map(function($val) { return $val[1]; }, $json_output["max"]); 

這需要PHP 5.3,如果您使用的是較早的版本,那麼你可以使用create_function來實現類似的結果:

$max_output = array_map(create_function('$val', 'return $val[1];'), $json_output["max"]); 
+1

+1對於'array_map',其中,**恕我直言**,是一個更多語義上合適的解決方案比循環。值得注意的是,當我在受控任務上對'array_map'和'foreach'進行基準測試時,循環通常比'array_map'調用快得多。然而,這是一個傳聞性的證據,所以要採取一定的措施,爲經常執行的代碼塊運行自己的基準測試。 – rdlowrey 2012-02-14 18:57:38

+0

這正是我所需要的。現在$ max_output只顯示我想要的對象。非常感謝! – 2012-02-14 19:00:01

+0

@ user1209756然後你應該接受答案! (點擊複選框並將其設爲綠色) – rdlowrey 2012-02-14 19:04:21

0

$max_output後...

for($i = 0; $i < length($max_output); $i++) { 
    $max_output[$i] = $max_output[$i][1]; 
} 
0

試試這個:

$ones = array(); 
foreach ($max_output as $r) 
    $ones[] = $r[1]; 
1

當你需要創建新的數組將只包含第二值,您可使用foreach循環,這將創造或使用array_map()(只是爲了好玩與anonymous function可用自PHP 5.3.0):

$newArray = array_map(function($item){ 
    return $item[1] 
},$array); 

然後你想使用最後一個(「MAX」 - >考慮與數字鍵排列)項,您可以使用end()

return end($item); 

而且當你可以順序處理你的數據(例如,這不是一些大getData()功能的一部分),您可以使用,而foreach:?是否有一個函數從PHP中的數組提取「列」]

foreach($items as $key => $val){ 
    echo $val[1] . " is my number\n"; 
}