在前端開發(fā)中,常常需要與后端的php進行數(shù)據(jù)交互。而php中最常用的數(shù)據(jù)類型之一就是數(shù)組。那么如何通過js來解析php數(shù)組呢?
首先,需要了解php數(shù)組的格式。php數(shù)組可以是一維數(shù)組,也可以是多維數(shù)組。一維數(shù)組的格式為:
$array = array("name" =>"張三", "age" =>20);
多維數(shù)組則可以像下面這樣:
$array = array("person1" =>array("name" =>"張三", "age" =>20), "person2" =>array("name" =>"李四", "age" =>30));
接下來就是如何解析php數(shù)組了。使用js的JSON.parse()方法可以將php數(shù)組解析成js對象。對于一維數(shù)組,可以直接調(diào)用JSON.parse()方法:
var array = '{"name":"張三","age":20}'; var obj = JSON.parse(array); console.log(obj.name); // 輸出:張三 console.log(obj.age); // 輸出:20
對于多維數(shù)組,則需要先將php數(shù)組轉(zhuǎn)換成json字符串,再調(diào)用JSON.parse()方法:
var array = '{"person1":{"name":"張三","age":20},"person2":{"name":"李四","age":30}}'; var obj = JSON.parse(array); console.log(obj.person1.name); // 輸出:張三 console.log(obj.person1.age); // 輸出:20 console.log(obj.person2.name); // 輸出:李四 console.log(obj.person2.age); // 輸出:30
需要注意的是,如果php數(shù)組中含有中文字符,則需要先將php數(shù)組轉(zhuǎn)換成json字符串時使用json_encode()方法,并設(shè)置第二個參數(shù)為JSON_UNESCAPED_UNICODE。這樣,生成的json字符串中的中文字符就不會被轉(zhuǎn)義了:
$array = array("name" =>"張三", "age" =>20); echo json_encode($array, JSON_UNESCAPED_UNICODE);
當然,如果只需要解析php數(shù)組中的部分數(shù)據(jù),則可以使用類似下面這樣的方法:
var array = '{"person1":{"name":"張三","age":20},"person2":{"name":"李四","age":30}}'; var obj = JSON.parse(array); var name = obj.person1.name; console.log(name); // 輸出:張三
通過以上方法,我們可以方便的將php數(shù)組轉(zhuǎn)換成js對象,同時也可以在前端頁面中進行數(shù)據(jù)解析和調(diào)用。同時需要注意的是,對于大數(shù)據(jù)量的數(shù)組,需要使用分頁等方式來減輕解析的負擔。