码迷,mamicode.com
首页 > 编程语言 > 详细

浅谈PHP中的数组和JS中的数组

时间:2017-07-26 18:01:29      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:ima   text   ext   index   .com   str   count   span   需要   

最近在做前后端对接的时候,遇到一个问题,前端要求返回的数据格式是左边的,但是我通过json_encode返回到的数据格式是右边的   注意:数据格式从"[]"(数组)变成了"{}"(对象)

 

技术分享技术分享

 

google了下,发现:javascript不支持关联数组 , PHP中索引数组转换成json是数组([]),php关联数组转换成json是对象( {} ) ,所以如果是关联数组的话,需要对数组做一些处理才行

PHP中的数组:索引数组和关联数组

PHP支持两种数组,一种是只保存"值"(value)的索引数组(indexed array),另一种是保存"名值对"(name/value)的关联数组(associative array)。

由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。

例如:

//1、索引数组
$arr = Array(‘one‘, ‘two‘, ‘three‘);
echo json_encode($arr);

//返回值:
["one","two","three"] 
//2、关联数组
$arr = Array(‘1‘=>‘one‘, ‘2‘=>‘two‘, ‘3‘=>‘three‘);
echo json_encode($arr);

//返回结果:
{"1":"one","2":"two","3":"three"} 

因此,如果需要达到图一的结果,需要对我们的数组中的关联数组进行处理(转为索引数组)

推荐一个函数:

array_values():返回数组的所有值(非键名)
$a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
print_r(array_values($a));

//返回结果

Array ( [0] => Bill [1] => 60 [2] => USA )

最后再用 json_encode处理后就会达到图一的结果。

以上

 

 

 

    

浅谈PHP中的数组和JS中的数组

标签:ima   text   ext   index   .com   str   count   span   需要   

原文地址:http://www.cnblogs.com/Steven-shi/p/7239897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!