1. 数组(array)
    1. 创建数组的方式:
      1. 以直接的方式声明数组;
      2. 使用array构建数组;Key => value 方式、索引方式
      3. 使用 [ ] 构建数组;
      4. 注意:新版php可以直接通过数组索引访问
    2. 数组的相关处理
      1. array_values()提取数组中的值,返回对应索引数组
      2. array_keys()提取数组中的键,返回对应的索引数组

      3. var_dump(in_array(18,$arr1,true));#判断数组中是否存在对应值(true是二维数组判断)
      4. array_search()搜索给定值
      5. array_key_exits()检查键名和索引值是否存在数组中
      6. array_flip()交换数组中的键值(保证键唯一)
      7. array_reverse()数组顺序反转
      8. array_count_values()统计值出现的次数
      9. arr_unquine()删除数组中重复的值
    3. 数组运算符

image.png

  1. 数组定义语法
    1. 1、 使用array关键字:最常用的:$变量 = array(元素1,元素2,元素3..);
    2. 2、 可以使用中括号来包裹数据:$变量 = [元素1,元素2…];
    3. 3、 隐形定义数组:给变量增加一个中括号,系统自动变成数组
      1. $变量[] = 值1; //如果不提供下标也可以,系统自动生成(数字:从0开始)
      2. $变量[下标] = 值; //中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似
  2. PHP数组
    1. PHP种常见的排序函数

image.png

  1. 1. 自然排序法,数字1~9,字母a~z,短者优先
  • 数组实现堆栈和队列
    1. array_pop( )
    2. Array_push( )
  • 特点
    1. 可以整数下标或者字符串下标
      1. 如果数组下标都为整数:索引数组
      2. 如果数组下标都为字符串:关联数组
    2. 不同下标可以混合存在:混合数组
    3. 数组元素的顺序以放入顺序为准,跟下标无关
    4. 数字下标的自增长特性:从0开始自动增长,如果中间手动出现较大的,那么后面的自增长元素从最大的值+1开始
    5. 特殊值下标的自动转换 布尔值:true和false 空:NULL
    6. PHP中数组元素没有类型限制
    7. PHP中数组元素没有长度限制
    8. 补充:PHP中的数组是很大的数据,所以存储位置是堆区,为当前数组分配一块连续的内存。
      • 多维数组
  1. 建立二维数组
    1. 使用array方式
    2. 使用[]
    3. 键值对方式
  2. 多维数组
    1. 在第二维的数组元素中可以继续是数组,在PHP中没有维度限制(PHP本质并没有二维数组)
    2. 不建议使用超过三维以上的数组,会增加访问的复杂度,降低访问效率。
  3. 异型数组
    1. 异形数组:数组中的元素不规则,有普通基本变量也有数组。
    2. 在实际开发中,并不常用,尽量让数组元素规则化(便于进行访问)
    • 数组遍历
  4. for 循环遍历数组
    1. For循环:基于已知边界条件(起始和结束)然后有条件的变化(规律)因此:for循环遍历数组有对应条件
      1. 获取数组长度:count(数组)得到数组元素的长度
      2. 要求数组元素的下标是规律的数字
  5. List() each() while() 循环遍历数组
    1. each() 返回当前键值对,并且指针向后移动一位;
    2. List()接受数组的值,相当于解包
    3. List函数使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量去从一个数组中取得元素值,然后依次存放到对应的变量当中(批量为变量赋值:值来源于数组):list必须从索引数组中去获取数据,而且必须从0开始。
    4. 错误操作:变量多于数组元素,没有指定从0到指定变量的下标的数组元素。因为$second变量对应的下标是1,但是数组中没有下标是1
  6. Foreach 循环遍历数组
    1. 基本语法如下:Foreach($数组变量 as [$下标 =>] $值){//通过$下标访问元素的下标;通过$值访问元素的值}
      1. 通常:如果是关联数组(字母下标),就需要下标,如果是数字下标就直接访问值
      2. 在进行数据存储定义的时候,通常二维数组不会两个维度的key下标都为数字,一般是一维为数字(无意义),二维为字符串(数据库表字段),所以在进行遍历的时候,通常是只需要针对一维进行遍历,取得二维数组元素,然后二维数组元素通过下标去访问。
    2. 错误操作:变量多余数组元素,没有指定从0到指定变量的下标的数组元素因为$second变量对应的下标是1,但是数组中没有下标是1
    3. 遍历原理:
      1. Foreach遍历的原理:本质是数组的内部有一颗指针,默认是指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针。
      2. foreach会重置指针:让指针指向第一个元素;
      3. 进入foreach循环:通过指针取得当前第一个元素,然后将下标取出放到对应的下标变量$k中(如果存在),将值取出来放到对应的值变量$v中;(指针下移)
      4. 进入到循环内部(循环体),开始执行;
      5. 重复2和3,直到在2的时候遇到指针取不到内容(指针指向数组最后)
  7. 使用数组内部指针控制函数遍历数组