php数组

1. 什么是数组

所谓数组,里面存储的是一组数据

 

2. PHP数组的分类

PHP数组分为2类:索引数组,关联数组

索引数组:所谓索引数组,就是和其他语言一样,下标是从0开始的数字,如下:

 

关联数组:键名和值有一定的业务逻辑关系。这个在其他编程语言里面很少见,使用字符串作为数组的下标

3.PHP数组的声明

① 直接赋值声明数组

语法:$数组名[下标|键名] =

索引数组的申明:

 

关联数组的声明

由于PHP是一门动态语言,和JavaScript一样,申明数组的时候不需要指定数组的大小。数组的大小可以动态的增加。动态语言!=动态类(实例化对象,就是初始化变量)

 

② 使用array()函数来申明数组

语法:$数组名 = array();

申明索引数组

声明关联数组

 

因为数组也是PHP8大数据类型中的一种,所以可以通过var_dump()来查看数据类型,除此之外,还可以通过print_r()函数也可以查看和打印出数组

使用print_r():

数组相关几个小知识点:

  1. 当我们使用第1种方法申明索引数组的时候,如果索引值从0开始依次递增,那么可以不用写索引值

 

2.可以索引数组和关联数组混搭风格,但是一般没人这么用

 

3.如果键名重复,后面的会覆盖前面的

 

③ 多维数组的申明

由于PHP数组里面的数据类型可以是任意类型,所以可以在一个数组里面又装入一个数组,形成多维数组。

如下:

除了索引,我们也可以创建关联的多维数组

 

取到多维数组里面的值的方法和其他语言一样的,如下:

 

打印结果就是”李四”

 

课堂练习:用一个3维数组将下面3张表格的信息装进去

④ 数组的遍历

和大多数编程语言一样,我们可以通过for循环来遍历一个数组,如下:

 

For循环只能遍历索引数组,不能遍历关联数组

 

② 通过foreach来遍历数组(必须掌握)

foreach(数组名  as  $key => $value

如下:

 

效果:

还有一种写法,就是当我们不想要键名的时候

foreach(数组名  as  $value

如下:

list(),each()

List():功能主要是将数组里面的所有值依次赋值给list里面的所有变量

语法:

List(变量名1,变量名2,变量名3) = 数组名

如下:

 

可以通过空的逗号来跳过某些值

 

List()只能用于索引数组,不能用于关联数组

如下:

Each():返回一个数组,这个数组里面有4个键,0,1keyvalue

 0key都是表示键名,1value都是表示值

Each每使用一次,数组的指针向后移动一位。

如下:

 

通过while配合listeach就可以遍历数组

如下:

Foreach  each的区别  foreach遍历数组,每使用一次,数组指针仍然为0(初始位置);each遍历数组,每使用一次,数组指针向下移动一位

 

④ 在PHP里面,有一套关于操纵数组指针的函数

Current():取得当前指针位置的数组值,每个数组都有一个内部的指针指向它当前的单元,初始指向插入到数组单元的第一个单元。

Key():取得当前指针位置的数组的键名

Next():将数组指针向后移动一位

Prev():将数组指针向前移动一位

End():直接将数组指针移动到最后

Reset():重置数组指针,移到最开头的地方

 

  1. 预定义数组

效率比用户自定义的高

所谓预定义数组,就是php系统给你定义好了的,你直接拿来就可以用的数组。

 

超全局数组有很多:

这里只列举一个简单的$GLOBALS

5.数组相关函数

① 数组键和值操纵相关函数

  1. Array_value():返回数组里面所有的元素值。将数组里面的所有值返回为一个新的索引数组

 

2.Array_keys():返回数组里面所有的元素值。将数组里面的所有值返回为一个新的索引数组

 

3.In_array():检查数组中是否存在某个值

该函数接受3个参数 in_array(查找值,数组,是否严格),如果写上1(true),那么就是开启严格模式

 默认状态:非严格模式

还有一个和in_array()效果差不多的函数array_search(),唯一不同之处就是返回值不同,array_search()是返回元素的键名

 

Array_key_exists():检查某一个键是否存在于数组里面,如果存在返回值为true,否则返回false

4.Array_flip():返回一个交换了键和值的新数组。

5.Array_reverse():将数组里面的元素的顺序进行翻转,原数组不变,返回新的数组

 

② 统计相关的数组函数

Count(数组名);

Count(数组名,1/true):统计数组里面元素的个数,第二个参数表示计算多维数组的个数

Array_count_values():用于统计一个数组所有值各自出现的次数

 

Array_unique():用于删除数组里面的重复值,并返回一个新数组。返回的新数组里面,被保留下来的元素的键名是没有被改变

③使用回调函数来处理数组

回调函数:将一个函数A作为参数传递到另外一个函数B里面,在函数B里面执行函数A

Array_filter():自己写一个函数来对一个数组进行过滤,返回的新数组里面符合要求的元素的键名会被保留

语法:array_filter(数组名,”函数名”)

 

Array_walk():写一个自定义的函数,对数组中的每一个元素都应用这个函数。如果成功返回TRUE,否则返回FALSE

Array_walk(数组,回调函数,函数的参数)

Array_map():写一个自定义函数,对数组进行处理,并且可以返回一个新的数组

Array_map(函数名,数组名1,数组名2,数组名3…)

 

Array_map对多个数组进行处理

 

Array_walkarray_map之间的区别:

Array_walk()函数只是使用传进来的数组的键和值,本身不会对原来的数组有任何影响,哪怕强行改变,也不行

Array_map()同样也是将数组里面的值应用到函数,但是应用后的节后可以返回给一个新数组

Array_map()可以处理多个数组,但是Array_walk()只能处理一个数组

 

 

 

数组排序相关函数

PHP里面,系统直接给我们提供了一套常用的数组排序函数

Sort()rsort():这两个算是一组函数,sort就是从小到大,rsort就是从大到小

Sort()函数示例:

 

Rsort()函数示例:

 

Asortarsort:这两个也算是一组函数,和上面一组的功能是一样的,只不过会保留原来的键名

Assort示例:

Ksortkrsort:根据键名来排序

 

按照自然排序法来进行排序:

所谓自然排序,就是按照人类的思维来排序,例如”12”是大于”2”,如果是字典排序,那么12” 小于“2

Natsort()

 

Natcasesort():还是根据自然排序来排序,但是会忽略大小写

数组的拆分,合并,分解等相关函数

  1. Array_slice():从数组里面截取一部分元素

语法:array_slice(数组名,开始的键名,截取多少个,[true|false])

如果最后一个参数设置为TRUE,保留原来的键名

 

2.Array_splice():从数组里面选择一系列的元素,并将其删除或者用其他的值来代替,返回值是返回被删除掉的元素

参数一共可以接受4个参数

Array_combine():合并两个数组,使其成为一个新的数组,其中一个数组为键名,另外一个数组为元素的值

 

Array_merge():合并数组,如果键名重复,那么后面的会覆盖前面的

 

Array_merge还有一个用处:可以给索引数组重新排序进行索引

 

Array_intersect():用于计算数组的交集。

该函数可以求多个数组

 

Array_diff():和上面的函数刚好相反,返回第一个数组里面没有在后面数组出现过的元素。

 

数据结构相关的函数

Array_push():向数组尾部添加一个或者多个元素,并且返回新数组的长度

Array_pop():删除数组中最后一个元素,并将数组减1,返回值是弹出的元素

 

Array_shift()array_unshift()

这个也是一组函数,刚才的pushpop是在数组尾部做工作,这两个函数是在数组头部做工作

Array_unshift():向数组头部添加一或者多个元素,并且返回新数组的长度

 

Array_shift():删除数组中第一个元素,并将数组减1,返回值是弹出的元素

其他数组相关函数

  1. Array_rand():从数组里面随机挑选出1个或者多个元素并且返回。返回值是一个索引值,根据索引值来找到相应的元素

返回多个随机值示例:会忘记怎么写

 

shuffle():将原来数组的顺序打乱,键名也会重新排号

 

Range(起始值,终值,间隔):创建一个包含指定范围的数组

Array_sum():计算数组中值的总和

 

PHP数组其他相关知识

 

1. 数组运算符号

PHP里面,数组可以使用+号来进行相加工作

如果使用+号来合并两个数组,和array_merge不同的地方是,

array_merge()键名(必须是字符串的键名,如果是数字,则附加在后面,不会产生覆盖)相同,后面的覆盖前面的,

但是+号刚好相反,如果键名相同,保留最开始的值

 

 

=====

PHP的数组也可以通过=====进行相等的判断,如下:

==:具有相同的键值对则为TRUE

===:具有相同的键值对,并且数据类型相同,顺序也要相同才返回TRUE

 

如果想要删除数组中某一个元素,直接使用unset()

需要注意的是,如果删除数组里面的某一个元素,后面的元素的索引值不会发生改变,还是保留之前的索引值。

 

 

转载于:https://www.cnblogs.com/chenduzizhong/p/7409988.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值