Home > Backend Development > PHP Tutorial > Multidimensional array json_encode produces objects instead of arrays

Multidimensional array json_encode produces objects instead of arrays

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-07-29 08:58:05
Original
1427 people have browsed it

The json_encode function can encode PHP arrays, and the return value is a string in json format. For json_encoding multi-dimensional arrays, I always thought it was returning an array form (in the form of {{obj1}, {obj2}, {obj3}}), but today the interface returned to the client found that it became an object instead of an array ( In the shape of [{....},{.....},{.....}]), it is inconvenient for client operations. After checking the code, I found that I had previously unset the first element of the multi-dimensional array. Units have been deleted, resulting in different return results. Look at the code below:

$arr = array(
<span style="white-space:pre">	</span>0=>array('name'=>'张三','age'=>'120'),
<span style="white-space:pre">	</span>1=>array('name'=>'李四','age'=>'111'),
<span style="white-space:pre">	</span>2=>array('name'=>'王五','age'=>'233')
);


$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";
Copy after login
The results are as follows:

Multidimensional array json_encode produces objects instead of arrays

Look again after removing the first index:

$arr = array(
	0=>array('name'=>'张三','age'=>'120'),
	1=>array('name'=>'李四','age'=>'111'),
	2=>array('name'=>'王五','age'=>'233')
);

unset($arr[0]); 
$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";
Copy after login

Multidimensional array json_encode produces objects instead of arrays

The solution is to use the sort function to index again.

$arr = array(
	0=>array('name'=>'张三','age'=>'120'),
	1=>array('name'=>'李四','age'=>'111'),
	2=>array('name'=>'王五','age'=>'233')
);

unset($arr[0]); 
sort($arr);
$res = json_encode($arr);
echo "<script>console.log(&#39;$res&#39;);</script>";
Copy after login

Multidimensional array json_encode produces objects instead of arrays

Okay... This doesn’t seem to be worth writing a blog, just think of it as a reminder to yourself

The above introduces the problem of generating objects instead of arrays after multi-dimensional array json_encode, including aspects of the problem. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template