蓝色部分:操作会影响原数组;粉色部分:操作不会影响原数组,使用时,用一个新变量接收返回值
JavaScript
|
PHP
|
|
定义 |
1.字面量方法:var arr=[1,2,3];
2.构造方法:
var
arr
= new Array ("abc")
;
|
1.定义普通数组
$arr = [1,2,3];
$arr = array(1,2,3);
2.定义关联数组
$arr = array("a"=>10,"b"=>5,"f"=>100);
|
从数组后面添加元素
(下标自动累加)
|
arr.push("abc"); |
1.array_push($arr,100);
2.$arr[]="a";
|
从数组前面添加元素 | arr.unshift("aaa",3); | array_unshift($arr,200); |
从末尾删除一个元素 | arr.pop(); | array_pop($arr); |
从开头删除一个元素 | arr.shift(); | array_shift($arr); |
任意位置添加或删除 |
arr.spice(1,0,100,200);
删除
:参数1:初始位置下标,参数2:删除个数
添加:参数1:初始位置下标,参数2:0,
参数3:要添加的新元素(默认添加到被删除元素的位置)
删除且添加:参数1:初始位置下标,参数2:删除个数,
参数3:要添加的新元素
末尾添加
:
arr.splice(arr.leng
th,
0
,
1000
);
末尾删除
:
arr.splice(arr.leng
th
-
1
,
1
);
|
1.unset($arr[1]);
//删除了下标为1的元素
(下标不会重新排列)
2.array_splice($arr,1,2,[11,22,33]);
//从下标为1的位置删除两个元素并且替换为“11,22,33”
|
截取数组 |
var arr1 = arr.slice(0,4); [ 开始位置下标,结束位置下标)
省略参数2,默认截到最后
从倒数第三个开始截取:var arr2 = arr.slice(-3);
|
$subArr = array_slice($arr,1,1);
参数2:开始截取的位置,参数3:截取的长度
|
数组转为字符串 |
1.var str = arr.toString();
2.var str = arr.join("**");转为字符串的同时,每个元素间 用“**”分隔
参数是自定义分隔符,默认是逗号
|
|
翻转数组的元素 | arr.reverse(); [ 1,2,3,4 ] 转为 [ 4,3,2,1 ] |
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
array_reverse($a);
|
合并数组 |
var arr1=[1,2]; var arr2=[3,4]; var arr3=[3,4];
var mixArr=arr1.concat(arr2,arr3);
|
|
拷贝 |
var copyArr = arr.concat();
拷贝后对原数组或副本修改都不会影响到另一个
|
|
处理数组的每个元素
修改元素的值
|
//每个数都加100组成一个新数组,也可以与字符串拼接
var mArr=arr.map(function(value){
return 100+value+"px";
});
|
//每个数都加10组成一个新数组
$newArr = array_map(function($value){
return $value+10;
},$arr);
|
遍历数组 |
arr.forEach(function(value,index){
console.log(value,index);
});
参数是一个回调函数,数组有几个元素,回调函数就会被调用多少次
回调函数的参数1获取到的是值,参数2获取到下标
|
//1.遍历普通数组
for($i = 0; $i < count($arr); $i++){
echo $arr[$i]."<br>";
}
//2.遍历关联数组
foreach($arr as $key =>$value){//$value是遍历出来的值,$key是键
echo '$key = '.$key.'=>$value ='.$value;
}
|
查找元素 |
var arr=["a","b","a"];
var index = arr.indexOf("a")r;
//查找到数组a
r中的a
(找到第一个就结束)
返回值:这个元素的下标,若没找到返回-1
参数1:要找的元素,参数2:从哪个下标位置开始找
|
1.
//找到返回1,否则:false
$arr = ["a","b","c"];
$res = in_array("a",$arr);
2.
//找到返回下标(键值),找不到返回false
array_search(32,$arr);
|
查找元素(找到符合条件所有元素,数组形式返回) |
arr = [100,101,200];
//找到大于100的
var filArr=arr.filter(function(value){
//回调函数的参数是每个元素
return value>100;
//条件
});
|
|
查找元素(找到符合条件的第一个元素,返回该值) |
arr = [100,101,200];
//找到大于100的
var filArr=arr.find(function(value){
//回调函数的参数是每个元素
return value>100;
//条件
});
|
|
判断是否数组中所有元素都满足条件 |
//判断是不是每一个都>10
var arr = [100,101,200];
var rel=arr.every(function(value){
//回调函数的参数是每个元素
//条件,
有一个元素不满足就返回false停止继续回调
every函数返回false
return value>10;
});
every()函数返回值为bool类型
|
|
判断是否数组中是否存在满足条件的元素 |
var rel=arr.some(function(value){
return value==101;
//有一个满足就返回true停止回调
some函数返回true,
若都不满足返回false
});
|
|
排序 |
var names = ["a","b","c"];
names.sort();
//不能正常排序数字数组,因为默认是以首字母方式排序
//用回调函数来修改排序方式
numbers.sort(function(a,b){
// return a>b;//从小到大
return a<b;
//从大到小
});
|
rsort($arr);
//降序排列
sort();
//升序排列
asort();
//根据关联数组的值,升序排列
arsort();
//根据关联数组的值,降序排列
ksort();
//根据关联数组的键,升序排列
krsort();
//根据关联数组的键,降序排列
|
返回数组的长度 | arr.length; |
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
//3
|