Heim > Backend-Entwicklung > PHP-Tutorial > 多维数组json_encode之后产生对象而不是数组问题

多维数组json_encode之后产生对象而不是数组问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-07-29 08:58:05
Original
1411 Leute haben es durchsucht

json_encode函数可以对PHP的数组进行编码,返回值是json格式的字符串。对于多维数组进行json_encode,我一直以为是返回数组形式(形如{{obj1}, {obj2}, {obj3}}),但今天接口返回给客户端发现变成了对象而不是数组(形如[{....},{.....},{.....}]),不方便客户端操作,检查代码才发现,我之前一个unset操作把多维数组的第一个单元给删掉了,导致返回结果不一样,下面看代码:

$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>";
Nach dem Login kopieren
结果如下:

多维数组json_encode之后产生对象而不是数组问题

再看去掉第一个索引之后:

$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>";
Nach dem Login kopieren

多维数组json_encode之后产生对象而不是数组问题

解决的办法是用sort函数再次索引即可。

$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>";
Nach dem Login kopieren

多维数组json_encode之后产生对象而不是数组问题

  好吧......这似乎没有写一篇博客的价值,就当是给自己提个醒吧

以上就介绍了多维数组json_encode之后产生对象而不是数组问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage