Home >Backend Development >PHP Tutorial >Conversion between PHP array and Json
The reason why Json is used is often because of the data interaction between the program and the JS function when using the ajax object. Because JS does not recognize arrays in PHP, PHP does not recognize arrays or objects in JS. Json solves this problem very well.
Introduction to Json
JSON (JavaScript Object Notation) is a lightweight data exchange format. It is based on a subset of JavaScript, which means JavaScript can read Json directly, which is very convenient. The specific form of
Json is:
1. Object
An object is an unordered collection of "name/value" pairs. An object starts with "{" (left bracket) and ends with "}" (right bracket). Each "name" is followed by a ":" (colon); "name/value" pairs are separated by a "," (comma).
For example: {"username": "Eric","age":23,"sex": "man"}
Code example:
?View Code JAVASCRIPT
<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. Array
The array is An ordered collection of values. An array starts with "[" (left bracket) and ends with "]" (right bracket). Values are separated by "," (comma).
For example: ["Eric",23, "man"]
Code example:
?View Code PHP
<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>
Note: Objects and arrays are called differently in JS. Object Called with ".", the array is called with subscripts [0], [1]. Also note that string type values must be enclosed in quotes when passing Json strings.
Convert array to Json in PHP
Powerful PHP already provides built-in functions: json_encode() and json_decode(). It is easy to understand that json_encode() converts a PHP array into Json. On the contrary, json_decode() converts Json into a PHP array.
For example:
?View Code PHP
$array = array("name" => "Eric","age" => 23); echo json_encode($array);
The program will print out: {"name":"Eric","age":23}
Look at the following example again:
?View Code PHP
$array = array(0 => "Eric", 1 => 23); echo json_encode($array);
The program will print out: ["Eric",23]
As can be seen from the above two examples, if the keys of the PHP array are all numbers, then json_encode() returns a Json in the form of an array. If the keys of the PHP array All are strings. Then json_encode() will return Json in the form of an object. Just said it. The two calls in js are different.
In fact, as long as there is a key in the form of a string in the key of the PHP array, then json_encode() will return Json in the form of an object. This is not correct. Because, although no errors will occur in the PHP code, if such a Json is passed to a JS function, JS will treat the Json as an object, and it is impossible for an object to use numbers as attribute names. In other words, JS does not know what this is: user.0.username (the middle is the number zero)
Reprinted from: http://www.cnblogs.com/xmphoenix/archive/2011/05/26/2057963.html
The above has introduced the conversion between PHP arrays and Json, including the relevant aspects. I hope it will be helpful to friends who are interested in PHP tutorials.