数组:
1.键名区分大小写,如:“a”和“A”不同;
2.若没有指明键名,则默认以0开始依次累加;
1.创建数组:
1.普通创建数组---
①$arr = array("键名1"=>"键值1","键名2"=>"键值2",...... ........);
②$arr = array("键值");
PS: 若数组中出现有些元素有的有键名,有的只有键值而没有键名的,那没有键名的以0开始之后累加;
2.批量创建数组:
a:数组填充------- array_fill(num1,num2,String a); //每个元素的键名都相同;
num1:初始索引
num2: 填充元素的数量
a:用于填充数组的键值
a:数组填充------- array_fill_keys($key,String a); //每个元素的键名都相同;
$key :用于充当键名的数组;
a:用于填充数组的键值
3.快速创建数组(主要用于数字型数组)--------- range(num1,num2,num3);
num1:起始元素的值;
num2:结束元素的值;
num3:两个参数间的差值;
2.数组排序:
a :对数组进行排序--------array_multisort($arr,[$arr1,$arr2,.... .....]); //1.可以有多个参数,但每个参数的元素个数必须相等;
//2.第二个参数默认是SORT_ASC,即默认是升序,那我们也可以用SORT_DESC来指定为降序。
b:把数组的原有顺序颠倒(包括键名也一起改变)------- array_reverse($arr);
c:对关联数组按键值进行降序排列------ asort($arr); //若数字与字符串同时出现,数字排在字符串前面;
d: 对关联数组按键值进行升序排列------ arsort($arr); //若数字与字符串同时出现,数字排在字符串前面;
e:对关联数组按键名进行降序排列------ krsort($arr); //若数字与字符串同时出现,数字排在字符串前面;
f: 对关联数组按键名进行升序排列------ ksort($arr); //若数字与字符串同时出现,数字排在字符串前面;
3.数组查询:
a:判断数组中是否存在某个键名------ array_key_exists(String a, $arr01); //返回 true 或 felse
a:要查找的键名;
$arr:所在数组;
b:根据键值找键名并将找到元素组成新数组-------- array_keys($arr,String a);
$arr:进行查找的数组;
a :要查找的键值;
c:在数组中随机取元素的键名(没有键值)------- array_rand($arr,num);
$arr:执行操作的数组;
num:要取的个数;
d:根据键值在数组查找相应的键名 ------------- array_search(String a,$arr);
a :要查找的键值;
$arr :执行操作的数组;
e:判断某元素是否在数组中--------- in_array(String a, $arr);
a :查询的键值;
$arr :执行的数组;
4.数组操作:
a:数组分割---array_chunk($arr, num,true);
$arr:要分割的数组;
num:以多少个元素做为一个单元分割;
true:是否保留原有键名;
b:键名与键值匹配组成新数组----array_combine($key,$value); //$key和$valued的长度必须相等
$key:做键名的数组;
$valu:做键值的数组;
c:统计各个元素在数组中出现的次数,形成新的数组-------array_count_values($arr); //跟键值无关;
d:两个数组间比较找差值--------array_diff系列
1.array_diff函数比较两个数组的差集,只比较键值。
2.array_diff_assoc函数比较键名和键值。
3.array_diff_key函数只比较键值。
4.array_diff_uassoc使用用户自定义的函数去比较键名和键值。
5.array_diff_ukey使用用户自定义的函数去比较键值。
6.以上函数都是返回差集,都可以接受N个参数,都是从第一个参数的数组中除 去后面参数中所拥有的数组的元素,然后返回剩下的数组。
e:实现键名与键值的互换-------- array_flip($arr); //若原来有相同的键名,则转换后会出现相同的键值,则只保留最后一个的;
f :对数组进行某个操作后重新返回一个新的数组---------- array_map(function a(), $arr);
a() : 回调函数。该回调函数接收数组的值,然后操作之后再还给该数组。
$arr :进行该操作的数组;
g:实现多个数组合并成一个新的数组------①array_merge($arr1,$arr2,$arr3, ..... ..... );
②array_merge_recusive($arr1,$arr2,$arr3, ..... ..... );
h:在数组批量插入元素------array_pad($arr,num,String a);
$arr :要操作的数组;
num:执行操作后数组的元素个数;
a:要插入的键值;
i:数组元素的乘积------- array_product($arr); //进行数字间的乘积;若数组元素中有非数字的字符串,则乘积结果为0;
j:数组元素求和-------- array_sum($arr);
k:去除数组中的重复元素--------- array_unique($arr);
l:对数组元素进行随机打乱---------- shuffle($arr); //打乱后键名将被重新分配为以0开始;
5.数组的统计:
a:统计各个元素在数组中出现的次数,形成新的数组-------array_count_values($arr); //跟键值无关;
b:统计数组中元素的个数------------count($arr);
6.数组的批处理:
1:array_reduce($arr,function a());
a() : 回调函数;
7.未分类的:
1.array_shift($arr)--------1.从数组左边开始取出一个值,且
取出一个,原数组就会少一个;
2.array_walk($arr, function c(),d);
$arr:执行数组;
c() :回调函数;
d : 回调函数的参数;