首页 > 编程语言 > 详细

PHP学习笔记(九)(数组相关)

时间:2020-02-05 09:47:53      阅读:56      评论:0      收藏:0      [点我收藏+]

数组的概念

array,数据的组合,指将一组数据(多个)存储到一个指定的容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据。

数组定义语法

在PHP中系统提供多种定义数组的方式

  1. 使用array关键字:最常用的

    $变量 = array(元素1,元素2,...);
  2. 可以使用中括号来包裹数据:

    $变量 = [元素1,元素2,...];
  3. 隐形定义数组:给变量增加一个中括号,系统自动变成数组

    $变量[] = 值1;
    $变量[下标] = 值;
    //中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似

PHP数组特点

  1. 可以整数下标或者字符串下标

    如果数组下标都为整数:索引数组

    如果数组下标都为字符串:关联数组

  2. 不同下标可以混合存在:混合数组

  3. 数组元素的顺序以放入顺序为准,,跟下标无关

  4. 数组下标的自增长特性:从0开始自动增长,如果中间手动添加下标较大的,那么后面的自增长元素从最大的值+1开始

  5. 特殊值下标自动转换

    布尔值:true和false

    空:NULL

  6. PHP中数组元素没有类型限制

  7. PHP中数组元素没有长度限制

注释:PHP中的数组是很大的数据,所以存储位置是堆区,为当前数组分配一块连续的内存

多维数组

数组里面的元素又是数组

二维数组

数组里面的都是一维数组

//定义二维数组
$info = array(
    array();
    array();
    ......
);

?多维数组

在PHP中没有维数限制

异形数组

数组中的元素不规则,有普通基本变量也有数组

数组遍历

普通数组数据的访问都是通过数组元素下标来实现访问,如果说数组中所有的数据都需要依次输出出来,就需要我们使用一些简化的规则来实现自动获取下标以及输出数组元素。

foreach遍历语法

//基本语法
foreach($数组变量 as [$下标 =>} $值){
    //语句
    //通过$下标访问元素的下标,通过$值访问元素的值
}
//通常:如果是关联(字母下标),就需要下标
//在进行数据存储定义的时候,通常二维数组不会两个维度的key下标都为数字,一般是一维为数字(无意义),二维为字符串(数据库表字段),所以在进行遍历的时候,通常是只需要针对一维进行遍历,取得二维数组元素,然后二维数组元素通过下标去访问。

foreach遍历原理

本质是数组的内部有一颗指针,默认是指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针。

  1. foreach会重置指针:让指针指向第一个元素。
  2. 进入foreach循环:通过指针取地当前第一个元素,然后将下标取出放到对应的下标变量中(如果存在),将值取出放到对应的值变量中;
  3. 进入循环内部(循环体),开始执行;
  4. 重复2和3,直到在2的时候遇到指针取不到内容(指针指向数组最后)

for循环遍历数组

基于已知边界条件(起始和结束)然后有条件的变化(规律)。因此:for循环遍历数组有对应条件

  1. 获取数组长度:count(数组)得到数组元素的长度
  2. 要求数组元素的下标是有规律的数字
//for循环遍历数组
for($i = 0,$len = count($arr); $i < $len; $i++){
    //语法体
} 

while配合each和list遍历数组

while是在外部定义边界条件,如果要实现可以和for循环

each函数使用:each能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后将数组指针下移,同时将拿到的元素下标和值以一个四个元素的数组返回,如果each取不到结果(数组指针移动到最后),返回 false。

list函数使用:list是一种结构,不是一种函数(没有返回值),是list提供一堆变量去从一个数组中取得元素值,然后依次存放到对应的变量中(批量为变量赋值:值来源于数组):list必须从索引数组中去获取数据,而且必须从0开始。

数组的相关函数

  1. 排序函数:对数组元素进行排序

    sort():对数组进行排序,将数组元素从低到高排序(顺序排序),下标重排

    rsort():逆序排序

    asort():顺序排序(下标保留)

    arsort():逆序排序(下标保留)

    ksort():顺序排序(按照键名)

    krsort():逆序排序(按照键名)

    shuffle():随机打乱数组元素

  2. 指针函数:

    reset():重置指针,将数组指针回到首位

    end();重置指针,见数组指针指向最后一个元素

    next():指针下移,取得下一个元素的值

    prev():指针上移,取得上一个元素的值

    current():获取当前指针对应的元素值

    key():获取当前指针对应的下标值

  3. 其他函数:

    count():统计数组中元素的数量

    array_push():往数组中添加一个元素(数组后面)

    array_pop():从数组中取出一个元素(数组后面)

    array_shift():往数组中添加一个元素(数组前面)

    array_unshift():从数组中取出一个元素(数组前面)

    array_reverse():数组元素反过来

    in_array():判断一个元素在数组中是否存在

    array_key():获取一个数组的所有下标,返回一个索引数组

    array_values():获取一个数组的所有值,返回一个索引数组

PHP学习笔记(九)(数组相关)

原文:https://www.cnblogs.com/Joshua-Zhang/p/12262236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!