您好,登錄后才能下訂單哦!
本篇內容主要講解“php數組如何轉成js數組”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php數組如何轉成js數組”吧!
php數組轉成js數組的方法:首先通過“json_encode()”將“$arr”的每一個值進行json編碼;然后將每個編譯后的值后面加一個逗號;最后在所有值外面加上“[]”符號即可。
本文操作環境:Windows7系統、PHP7.1、Dell G3電腦。
JSON用法之將PHP數組轉JS數組,JS如何接收PHP數組
首先下載下面這個文件(這是一段是別人寫出來專門解析json的代碼),然后引入這個文件!
http://pan.baidu.com/s/1dD8qVr7
現在當我們需要用ajax與后臺進行交互時,怎樣將php的數組傳送到js文件并且并js所識別?
先看php文件,當我們獲取到$arr這個數組后
foreach ($arr as $value) { $json .= json_encode($value) . ','; } echo '[' . substr($json,0,strlen($json) - 1) . ']';
json_encode()是將$arr的每一個值進行json編碼,然后我們想輸出一個json的數組,所以我們將每個編譯后的值后面加一個逗號并且最后在所有值外面加上'[]',這是json數組的格式,注意因為我們在將每一個值進行json編碼后都加上一個逗號在后面,這樣就導致最后所有值合并數組時多一個逗號,所有我們得用substr()函數將其最后一個逗號去掉!【】
然后我們來看js文件
當我們用arr接受到php文件傳輸的json數組后
var json = JSON.parse(arr);
JSON是咱們開始下載那個文件中定義的一個對象,我們用它的parse方法將json數組轉化成js的數組!這是變量json接受到的是一個js數組所以直接不能打印出來,你可以遍歷這個json數組或者json[0]來輸出!
其實,說白了咱們將php數組轉化成js數組的思路就是利用json這個中間量來實現!當然你也可以只用php和js來實現數組的轉化,方法不止一種!
PHP數組和Json之間的轉換
之所以要用到Json,很多時候是因為使用ajax對象時,程序與JS函數之間的數據交互。因為JS不認識PHP中的數組,PHP也不認識JS中的數組或對象。Json很好的解決了這個問題。
Json簡介
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript的一個子集,這意味著JavaScript可以直接讀取Json,非常方便。
Json的具體形式是:
1.對象
對象是一個無序的“‘名稱/值'對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值' 對”之間使用“,”(逗號)分隔。
例如: {“username”: “Eric”,”age”:23,”sex”: “man”}
代碼示例:
<script type="text/javascript"> function getUser() { var user = { "username": "Eric", "age":23, "family": {"mother":"Marry","father":"Alon","brother":"Tom"} }; alert( user.username ); alert( user.age ); alert(user.family.brother); } getUser(); </script>
2、數組
數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。
例如: ["Eric",23, "man"]
代碼示例:
<script type="text/javascript"> function getArray() { var arr = ["Jarry",23, ["www.xiaophper.com","wxyh_999@126.com"]]; alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray(); </script>
注意:對象和數組兩種形式在JS中的調用時不一樣啊,對象用“.”調用,數組用下標[0]、[1]調用。還要注意在傳遞Json串時string類型的值要用引號括起來。
PHP中將數組轉變成Json
強大的PHP已經提供了內置函數:json_encode() 和 json_decode()。很容易理解,json_encode()就是將PHP數組轉換成Json。相反,json_decode()就是將Json轉換成PHP數組。
例如:
$array = array("name" => "Eric","age" => 23); echo json_encode($array);
程序將打印出 :
代碼如下:
{“name”:”Eric”,”age”:23}
再看下面的例子:
$array = array(0 => "Eric", 1 => 23); echo json_encode($array);
程序將打印出 :["Eric",23]
以上兩個例子可以看出,如果PHP數組的鍵都是數字,那么json_encode()返回一個數組形式的Json,如果PHP數組的鍵全是字符串。那么json_encode()就會返回一個對象形式的Json。剛已經說過。兩者在js中的調用是不同的。
事實上,只要在PHP數組的鍵中有一個字符串形式的鍵,那么json_encode()就會返回對象形式的Json。這是不正確的。因為,雖然在PHP代碼中不會出現錯誤,但要是將這樣的Json傳給JS函數,JS會將此Json當做一個對象,而對象是不可能以數字作為屬性名的。也就是說JS 不知道這是什么 : user.0.username (中間是數字零)
到此,相信大家對“php數組如何轉成js數組”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。