Js中的数组函数和php中数组函数的对比
JavaScript | PHP | 含义 | 返回值 | 用法 | 备注 |
---|---|---|---|---|---|
length | count()或者sizeof() | 数组长度 | - | arr.length; count($arr); | sizeof()是count()的别名 |
indexOf() | array_search() | 指定元素的索引 | 成功返回第一个键名(或索引),失败分别返回-1 和 false | arr.indexOf(1); array_search(1,$arr); | 返回值 |
slice() | array_slice() | 数组截取 | 返回截取的部分 | arr.slice(0,2); array_slice($arr,0,2); | 前者两个参数都是索引(不包括结束索引),后者第三个参数表示长度 |
push() | array_push() | 从尾部压入(入栈) | 返回新数组长度(改变原数组) | arr.push('A') array_push($arr,'A') | - |
pop() | array_pop() | 弹出数组最后一个(出栈) | 返回弹出的值(改变原数组) | arr.pop() array_pop($arr) | - |
unshift() | array_unshift() | 从头压入数据 | 返回新数组长度(改变原数组) | arr.unshift() array_unshift($arr,'A') | - |
shift() | array_shift() | 弹出数组第一个元素 | 返回弹出的值(改变原数组) | arr.shift() array_shift($arr) | - |
sort() | sort() | 排序 | 后者返回值为bool | arr.sort() sort($arr) | - |
reverse() | array_reverse() | 数组反转 | 前者改变原数组,后者返回翻转后数组 | arr.reverse() array_reverse($arr) | - |
splice() | array_splice() | 替换指定部分为指定的值 | 返回被删除的元素(改变原数组) | arr.splice(1,2,'A','B') array_splice($arr,1,2,['A','B']) | 写法不太一样,后者要替换的是写个数组,前者分开写元素 |
concat() | array_merge() | 数组合并 | 返回合并后的数组 | arr.concat([1,2,3]) array_merge($arr,[1,2,3]) | 存在相同字符串键名,后者覆盖前者 |
join() | implode() | 数组转字符串 | 字符串 | arr.join('-') implode('-',$arr) |
在js中貌似没有关联数组一说,对象就是关联数组(但其实,array本身也是对象)。js对象中
键值对
的声明为:
,跟php中的=>
不一,并且键的名称(其实就是对象的属性)也不需要用引号来包含,除非这个键包含了特殊符号,比如(var xiaohong = {name: '小红','middle-school': 'No.1 Middle School'};
),包含特殊符号的属性,也只能用关联数组的形式来访问,比如xiaohog['middle-school']