2012-08-10 27 views
0

我需要將這個json轉換成一個php數組,然後循環遍歷這些項並將它們放到那裏,我已經嘗試過使用json解碼的各自的列,但是所有我回來的是文本數組我知道請求工作正常,並給出了下面的輸出:解碼json到php數組然後到mysql

[{"roomType":"Single rooms","roomTypeCode":"SB"},{"roomType":"Double rooms","roomTypeCode":"DB"},{"roomType":"Twin rooms","roomTypeCode":"TB"},{"roomType":"Triple rooms","roomTypeCode":"TR"},{"roomType":"Suites","roomTypeCode":"S"},{"roomType":"Non-smoking rooms","roomTypeCode":"NS"},{"roomType":"Quad rooms","roomTypeCode":"Q"},{"roomType":"Twin for sole use","roomTypeCode":"TS"}] 

如果我打印需要被所有有解碼,但JSON解碼似乎不能夠只是但這成字符串聯想陣列im試圖使用它的方式繼承人請求

$ch = curl_init(); 
$timeout = 0; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$rawdatar = curl_exec($ch); 
curl_close($ch); 
$roomdata = json_decode($rawdatar); 
print $roomdata; 

如果我打印$ rawdatar我得到JSON但只是陣列的上述行當我打印$ roomdata我在做什麼錯

+1

使用'var_dump()'來查看你得到的是什麼,而不是'print'。 – fdomig 2012-08-10 18:40:44

回答

2

你的JSON數據對象的數組:

試着這樣做:

echo $roomdata[0]->roomType; 

如果你print($roomdata),它總是會顯示Array,因爲這就是它。欲瞭解更多信息,請閱讀json_decode:http://php.net/manual/en/function.json-decode.php

1

解碼JSON不會奇蹟般地將事物放入關聯數組中。您擁有的JSON結構表示一組對象。你需要像這樣將它映射到一個關聯數組:

$object_array = json_decode($rawdatar); 
$result_array = array(); 
foreach($object_array as $obj) { 
    $result_array[$obj->roomType] = $obj->roomTypeCode; 
}