一直不太清楚js中对象、数组和PHP 数组之间的关系,今天查了一些资料整理了一下,有错误的地方还请大家指出。
在PHP 中,数组分为两种
//索引数组,以数字为键的数组,键从0开始自增
$arr = [1,2,3,4];
//关联数组,指一个键对应一个值,并且这个键(id,name)是不规律的,通常由我们自己指定
$list = ['id'=>1,'name'=>'小华'];
在js中,对象是由属性、方法构成(这里不讨论对象的方法),对象的属性相当于PHP关联数组的键,一个属性(一个键)对应一个值,即PHP的关联数组就是js对象,js对象就是PHP的关联数组。
这一点与php语言完全不同,在php中,关联数组也是数组。
例如 前端传值如下:
var news = {
'add':[{id:1, title:'标题1', content:'内容1'},
{id:11, title:'标题11', content:'内容11'}],
'save':{id:2,title:'标题2',content:'内容2'},
'del':[1,2,3],
};
PHP 接收如下:
add 是二维关联数组
save 是一维关联数组
del 是一维索引数组
总结如下,假设后台PHP传参要求为:
1、关联数组:由固定键(非数字0,1,2)表示,例如news下面要有三个键(add,save,del), 一定为对象{}包裹
2、索引数组: 即 js的数组 [ ]包裹