一、数组的种类
1. 数值数组,以整数为下标,索引从 0 开始
- 创建数组的方式一:array()
$arr = array(1,2,3);
print_r($arr); // 打印数组
var_dump($arr); // 打印数组
echo $arr[0]; // 打印数组第一项
- 创建数组的方式二:[]
$arr = [1,2,3]
2.关联数组,以字符串为下标
- 创建数组的方式一:array()
$arr = array('username'=>'zhangsan','password'=>'123456');
print_r($arr); // 打印数组
var_dump($arr); // 打印数组
echo $arr['username']; // 打印数组第一项
- 创建数组的方式二:[]
$arr = ['username'=>'zhangsan','password'=>'123456'];
print_r($arr);
二、数组遍历
- 数值数组遍历
$arr = ['齐','楚','燕','韩','赵'];
for ($i=0; $i <count($arr); $i++) {
echo $arr[$i] . '<br>';
}
- 关联数组遍历
$arr = ['qi'=>'齐','chu'=>'楚','yan'=>'燕','han'=>'韩','zhao'=>'赵'];
foreach ($arr as $key => $value) {
echo $key .'---'. $value . '<br>';
}
三、数组的增、删、改
- 增加
array() 创建数组
array_push(数组,单个或多个值) 将一个或多个元素插入数组的末尾
array_unshift(数组,单个或多个值) 将一个或多个元素插入数组的开头
array_splice(数组,开始索引,0,插入的数组) 在数组的指定位置插入另一个数组,返回空数组,改变原数组
array_merge(单个或多个数组) 数组合并,关联数组在key相同时会覆盖
array_merge_recursive(单个或多个数组) 数组合并,key相同时生成二维数组(递归)
... 拓展运算符实现数组合并,比如:$a=['a','b','c']; $b=[...$a,'c','d','e']; print_r($b);
- 删除(包括数组的过滤和去重)
array_pop(数组)删除数组中最后一项,并返回删除的那一项的值,改变原数组
array_shift(数组)删除数组中第一项,并返回删除的那一项的值,改变原数组
array_slice(数组,开始索引,截取长度)截取数组片段,不改变原数组,返回截取的片段
array_splice(数组,开始索引,截取长度)在数组的指定位置删除数组片段,返回删除的数组,改变原数组
array_filter(数组,函数名称) 过滤符合条件的数组,只过滤value
array_unique(数组) 删除数组中重复的值
- 修改
array_splice(数组,开始索引,截取长度,插入的数组)在数组的指定位置先删除后插入,返回删除的片段,改变原数组
array_replace(数组,单个多个数组)数值数组对应索引替换,关联数组如果key对应上则替换,否则追加,不处理二级数组
array_replace_recursive()(数组,单个多个数组)数值数组对应索引替换,关联数组如果key对应上则替换,否则追加,会处理二级数组(递归)
array_map(函数名称,单个或多个数组) 映射重构新数组,可传入多个数组,只重构value,可批量修改某些值
四、数组查询
count(数组) 获取数组的长度
数组[key] 通过key获取value
array_search(value,数组) 通过value获取key
array_key_first(数组)获取数组的第一个key。
array_key_last(数组)获取数组的最后一个key。
array_keys(数组)以数组的方式返回数组中所有的key
array_key_exists(key,数组)获取数组中是否存在某key,返回true或false
in_array(value,数组) 判断数组中是否有某个value
array_values()以数组的方式返回数组中所有的value
array_sum() 返回所有值的和
array_product()返回所有值的乘积
五、数组排序
sort(数组)对数组进行升序排列
rsort(数组)对数组进行降序排列
asort(数组)根据关联数组的值,对数组进行升序排列
ksort(数组)根据关联数组的键,对数组进行升序排列
arsort(数组)根据关联数组的值,对数组进行降序排列
krsort(数组)根据关联数组的键,对数组进行降序排列
六、数组比较
可多个数组一起比较
array_diff(数组1,数组2)比较数组,返回两个数组的差集(只比较value)。
array_diff_key(数组1,数组2)比较数组,返回两个数组的差集(只比较key)。
array_diff_assoc(数组1,数组2)比较数组,返回两个数组的差集(比较key和value)。
array_diff_ukey(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(只比较key,使用key的比较函数)。
array_diff_uassoc(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(比较key和value,使用key的比较函数)。
array_udiff(数组1,数组2,key比较函数)比较数组,返回两个数组的差集(只比较value,使用key比较函数)。
array_udiff_assoc(数组1,数组2,value比较函数)比较数组,返回两个数组的差集(比较key和value,使用内建函数比较key,使用用户自定义函数比较value)。
array_udiff_uassoc(数组1,数组2,key比较函数,value数组)比较数组,返回两个数组的差集(比较key和value,使用两个用户自定义的key比较函数)。
array_uintersect(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(只比较value,使用key比较函数)。
array_uintersect_assoc(数组1,数组2,value比较函数)比较数组,返回两个数组的交集(比较key和value,使用内建函数比较key,使用用户自定义函数比较value)。
array_uintersect_uassoc(数组1,数组2,key比较函数,value比较函数)比较数组,返回两个数组的交集(比较key和value,使用两个用户自定义的key比较函数)。
array_intersect(数组1,数组2)比较数组,返回两个数组的交集(只比较value)。
array_intersect_assoc(数组1,数组2)比较数组,返回两个数组的交集(比较key和value)。
array_intersect_key(数组1,数组2)比较数组,返回两个数组的交集(只比较key)。
array_intersect_uassoc(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(比较key和value,使用key的比较函数)。
array_intersect_ukey(数组1,数组2,key比较函数)比较数组,返回两个数组的交集(只比较key,使用key的比较函数)。
七、数组格式化
array_reverse(数组) 数组反转
array_flip(数组)keyvalue交换
array_reduce(数组,函数名称) 将数组的value通过函数处理,转化为字符串
八、数组去重
array_unique(数组) 删除数组中重复的值
网友评论