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

Posted Steven*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈PHP中的数组和JS中的数组相关的知识,希望对你有一定的参考价值。

最近在做前后端对接的时候,遇到一个问题,前端要求返回的数据格式是左边的,但是我通过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中的数组的主要内容,如果未能解决你的问题,请参考以下文章

浅谈PHP5中垃圾回收算法

访问 vue.js 模板中的 php 数组

浅谈js的join()方法

将对象数组转换为 Vue js 和 php 中的对象

为什么我不能在此片段中生成唯一对象数组?

JS常用代码片段-127个常用罗列-值得收藏