2013-11-14 81 views
0

再次碰到一個路障.. 我需要從我的json文件進行編碼的範圍的值和該範圍以外的一切將爲空。有關我如何實現這一目標的任何建議?json_encode範圍從數組

例如:如果json值> 100,則返回值到新數組中,如果json值爲< 100則返回null到同一個新數組中。

這裏是我的代碼:

$url = 'http://magicseaweed.com/api/API_KEY/forecast/?spot_id=3952'; 
$JSON = file_get_contents($url); 

$data = json_decode($JSON,true); 

foreach ($data as $record) { 
    $array[] = array($record['localTimestamp']*1000, $record['wind']['direction']); 
} 

echo json_encode($array); 

預先感謝您的幫助!

+1

你的意思是'如果JSON> 100 '? '$ JSON'是一個數組,它不是一個值,你可以與100比較。 – Barmar

+0

我的意思是如果我的原始JSON文件中的值高於100或者低於100或者返回值或者爲空,並將它們放入我的數組中 – MacD

+0

你意思是'$ record ['wind'] ['direction']'的值? – Barmar

回答

2

使用條件表達式:

foreach ($data as $record) { 
    $val = $record['wind']['direction']; 
    $array[] = array($record['localTimestamp']*1000, $val > 100 ? $val : null); 
} 
+0

就是這樣!感謝Barmar! – MacD

0

也許

if ($record['wind']['direction'] > 100) 

0

你應該只能夠在一個額外的代碼行添加在您的foreach循環,如:

foreach ($data as $record) { 
    $value = array($record['localTimestamp']*1000, $record['wind']['direction']); 
    if($value > 100){ 
     $value = NULL; 
    } 
    $array[] = $value; 
} 

echo json_encode($array); 
+0

您無法將數組與100進行比較。 – Barmar