2014-08-27 51 views
0

我想從數組中刪除一個元素(從JSON轉換),但未設置,並重新在JSON中,數組變爲索引。php刪除陣列沒有添加鍵的元素

源陣列:

{"rows": 
[{"c":[{"v":"Date(1409052482000)"},{"v":22},{"v":22},{"v":22},{"v":null}]}, 
{"c":[{"v":"Date(1409052614000)"},{"v":22},{"v":22},{"v":22},{"v":null}]}, 
{"c":[{"v":"Date(1409052782000)"},{"v":22},{"v":22},{"v":22},{"v":null}]} 
]} 

結果:

{"rows": 
"2":{"c":[{"v":"Date(1409052614000)"},{"v":22},{"v":22},{"v":22},{"v":null}]}, 
"3":{"c":[{"v":"Date(1409052782000)"},{"v":22},{"v":22},{"v":22},{"v":null}]} 
}} 

問題是 「2」 和 「3」 鍵。我不想要這個鍵,因爲我使用google圖表的數據,並且對於這個索引鍵是明智的。

PHP代碼:

$tempdata = json_decode($jsonTempLog, TRUE); 
foreach ($tempdata['rows'] as $key => $row) { 
    if ($logtime < $showtime) { 
     unset($tempdata['rows'][$key]); 
    } 
} 
echo json_encode($tempdata); 

怎樣從數組中刪除元素,保持原有的JSON語法?

+0

什麼是$ logtime和它來自哪裏? – TunaMaxx 2014-08-27 10:03:03

回答

0

我這是怎麼一起工作:

unset($infos[$i]); 
$infos = array_values($infos); 
+0

謝謝,它的工作原理:$ tempdata ['rows'] = array_values($ tempdata ['rows']); – 2014-08-27 10:19:46

3

只是這樣做:

$tempdata["rows"] = array_values($tempdata["rows"]); 
echo json_encode($tempdata); 

否則JSON認爲你發送一個關聯數組,而一個數字一個

0

也許這樣:

foreach($tempdata as $row){ 
    $tempdata[$rows['keyfield']] = $row; 
}