PHP数组

本文详细介绍了PHP中数组的定义方式,包括使用array关键字、中括号以及隐形定义。数组特点包括整数或字符串下标、混合下标、顺序与下标无关等。还讲解了如何通过foreach、for、while+each和list遍历数组。此外,提到了PHP数组的相关函数,如排序、指针操作和其他实用函数。文章最后简要提及了快速排序和归并排序的概念。
摘要由CSDN通过智能技术生成

定义数组的方式:

  • 使用array关键字:最常用的

$变量 =array(元素1,元素2,元素3..);

  • 可以使用中括号来包裹数据:

$变量 =[元素1,元素2,元素3..];

  • 隐形定义数组:给变量加上一个中括号,系统自动变成数组。

$变量[] =值1; //如果不提供下标也可以,系统自动生成(数字:从0开始)

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

 

 数组特点

  • 可以整数下标或者字符串下标
  • 不同下标可以混合存在
  • 数组元素的顺序以放入顺序为准,跟下标无关
  • 数字下标的自增长特性
  • 特殊值下标的自动转换:

       布尔值:true和false

       空:NULL

  • PHP中数组元素没有类型限制
  • PHP中数组元素没有长度限制

二维数组:

数组中所有的元素都是一维数组

 数组遍历:

  • Foreach遍历语法

基本语法:

Foreach($数组变量 as [$下标=>]$值){

       //通过$下标访问元素的下标;通过$值访问元素的值

}

通常:如果是关联数组(字母下标),就需要下标,如果是数字下标就直接访问值

获取下标:

  • For循环

遍历数组有对应条件:

1.获取数组长度:count(数组)得到数组元素的长度;

2.要求数组元素的下标是规律的数字

  • While配合each 和 list遍历数组

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

each函数使用:each能够从一个数组中获取当前数组指针所指向的元素的下标和值,拿到之后将数组指针下移在,同时将拿到的元素下标和值以一个四个元素的数组返回:

0下标——取得元素的下标值;

1下标——取得元素的值;

Key下标——取得元素的下标值;

Value下标——取得元素的值。

如果each取不到结果(数组指针移动到最后),返回false

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

正确操作:

错误操作:变量多于数组元素,没有指定从0到指定变量的下标的数组元素

List与each配合特别好:each一定有两个元素就是0和1下标元素

List(变量1,变量2)=each(数组);  //是一种赋值运算,但是可以得到false结果(each取不到正确的结果),整个表达式为false

数组的相关函数:

  1. 排序函数
  • sort():顺序排序(下标重排)
  • rsort():逆序排序
  • asort():顺序排序(下标保留)
  • arsort():逆序排序
  • ksort():顺序排序:按照键名(下标)
  • krsort():逆序排序
  • shuffle():随机打乱数组元素

      2.指针函数:

  • reset():重置指针,将数组指针回到首位
  • end():重置指针,将数组指针指到最后一个元素
  • next():指针下移,取得下一个元素的值
  • prev():指针上移,取得上一个元素的值
  • current():获取当前指针对应的元素值
  • key():获取当前指针对应的下标值

 

注:next和prev会移动指针,有可能导致指针移动到最前或者最后(离开数组),导致数组不能使用,通过next和prev不能回到真确的指针位置。只能通过end或者reset进行指针重置。

      3.其他函数

  • count():统计数组中元素的数量
  • array_push():往数组中加入一个元素(数组后面)
  • array_pop():从数组中取出一个元素(数组后面)
  • array_shift():从数组中取出一个元素(数组前面)
  • array_unshift():从数组中加入一个元素(数组前面)
  • array_reverse():数组反过来
  • in_array():判断一个元素在数组中是否存在
  • array_keys():获取一个数组的所以下标,返回一个索引数组
  • array_values():获取一个数组的所有值,返回一个索引数组

 

 

快速排序

 

归并排序:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值