อ่านข้อมูล Array จาก JSON ไฟล์ ด้วย PHP
2010-05-20 Games 19,8022021-06-04 Games
อัพเดต
- ฉันจะดึงข้อมูลจาก JSON ด้วย PHP ได้อย่างไร qastack.in.th
-------------------------------------
บทความเก่า [ 2010-05-20 ]
ในไฟล์ JSON มีการเก็บข้อมูลในแบบ Array ด้วยเหมือนกัน ซึ่งเมื่่อตอนที่แล้วเราได้ดูวิธีการเรียกใช้ข้อมูลใน JSON ไฟล์แบบโดยตรงมาแล้ว
สำหรับวันนี้เราจะมาดูวิธีในการเรียกใช้ข้อมูลใน JSON ไฟล์ที่มีการเก็บข้อมูลแบบ Array ไว้นะครับ
ไฟล์ data3.json
{
"controls": [
[
"fire",
"na"
],
[
"jump",
"na"
],
[
"movement",
"mouse"
]
],
"tags": [
"sudoku",
"sudoku 24",
"puzzle",
"puzzles",
"puzzlepond"
],
"category": "Puzzles",
"control_scheme": "{\"fire\": \"na\", \"jump\": \"na\", \"movement\": \"mouse\"}"
}
จากด้านบนข้อมูลที่อยู่ในรูปแบบ Array คือข้อมูลที่อยู่ใน [ ] ครับ มาดู code php กัน มาดูวิธีแบบเข้าถึงข้อมูลโดยตรง
controls[$i][0]; $x2 = $data->controls[$i][1]; echo $x1."=".$x2; echo "
"; } /* แสดงผลออกมาดังนี้ fire=na jump=na movement=mouse */ ?>
อีกวิธีเป็นการแปลงข้อมูลใน JSON ให้อยู่ในรูปแบบ Array ของ PHP ก่อนนำไปใช้งานอีกทีครับ
Array ( [0] => Array ( [0] => fire [1] => na ) [1] => Array ( [0] => jump [1] => na ) [2] => Array ( [0] => movement [1] => mouse ) ) [tags] => Array ( [0] => sudoku [1] => sudoku 24 [2] => puzzle [3] => puzzles [4] => puzzlepond ) [category] => Puzzles [control_scheme] => {"fire": "na", "jump": "na", "movement": "mouse"} )
*/
echo "
";
while (list($key) = each($jarr)) { // ทำการ list ค่า key ของ Array ทั้งหมดออกมา
echo "=================
";
echo "$key
";
echo "=================";
echo "
";
$count = count($jarr[$key]); // นับจำนวนแถวที่เก็บไว้ใน Array ใน key นั้นๆ
if ($count>1){
for ($i=0;$i<$count;$i++) {
echo $jarr[$key][$i]; // พิมพ์ค่าที่ถูกเก็บไว้ในแต่ละแถวของ key นั้นๆ
echo "
";
}
} else {
echo $jarr[$key]; // กรณีค่าที่เก็บไว้มีเพียงค่าเดียว
echo "
";
}
}
/* แสดงผลออกมาดังนี้
=================
controls
=================
Array
Array
Array
=================
tags
=================
sudoku
sudoku 24
puzzle
puzzles
puzzlepond
=================
category
=================
Puzzles
=================
control_scheme
=================
{"fire": "na", "jump": "na", "movement": "mouse"}
*/
?>
จะเห็นได้ว่าใน controls ค่าที่ถูกเก็บไว้เป็น Array อีกทีหนึ่ง เมื่อสั่งพิมพ์ค่าออกมาจึงยังไม่แสดงผลที่ถูกต้อง
หมายเหตุ
อ่านเพิ่มเติมความเข้าใจเกี่ยวกับ Array ใน PHP ได้ที่ www.worldphp.com
Array, JSON, PHP | PHP
