php之数组及数组排序

php数组

数组是什么?数组是一个能在单个变量中存储多个值的特殊变量,如果说我们有一个项目清单(例如:车名字的清单),我们用一个变量来存储一个名字,就像下面:

$cars1 = "Volvo";
$cars2 = "bmw";
$cars3 = "toyota";

如果只是少量的那还行,但是如果是300个3000个呢,并且如果我们要遍历这些名字并找出相应的一个,不是很麻烦吗,这我就要找数组来解决,数组可以在单个变量中存储多个值,并且可以根据键访问其中的值。
在php中,array()函数用于创建数组。

array();

在php中,有三种类型的数组:

  • 数值数组 - 带有数字id键的数组
  • 关联数组 - 带有指定的键的数组,每个键关联一个值
  • 多维数组- 包含一个或多个数组的数组

数值数组

创建数值数组有两种方式,一种是自动分配ID键值,(ID键值总是从0开始):

$cars = array("volvo","BMW","Toyota");

另一种是人工分配ID键:

$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";

实例:
在这里插入图片描述

获取数组的长度-count()函数

count()函数用于返回数组的长度(即元素的数量):
在这里插入图片描述

遍历数值数组

遍历并打印数值数组中的所有值,可以使用for循环,如下所示:
$在这里插入图片描述

php关联数组

关联数组是使用所分配的数组的指定的键的数组,同样两种创建方式:

$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"42");

或者是

$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "42";

后面我们就可以使用脚本中使用指定的键:
在这里插入图片描述

遍历关联数组

遍历并打印关联数组中的所有值,可以使用foreach循环,如下:
在这里插入图片描述
关于foreach循环,我的理解是就像名称一样,for each循环每一个,foreach(变量名 as 循环变量=>循环变量所指的键值),和for没什么区别,我们通常是使用循环变量一般为数字,这边使用的非数字的数组,对于用数字作为循环变量就不太行,而使用foreach就比较方便了。(这边只是我自己的一个理解,不对之处还望各位能够指导下)。

多维数组

一个数组中的值可以是另一个数组,另一个数组的值也可以是另一个数组。依照这种方式,就可以创建二维或三维数组。多维数组是包含一个或多个数组的数组,在多维数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。

// 二维数组:
$cars = array
(
    array("Volvo",100,96),
    array("BMW",60,59),
    array("Toyota",110,100)
);

在这里插入图片描述
尝试显示上面数组中的某个值:
在这里插入图片描述
其实很好理解,我是这样理解的,我们学过c语言,在编译过程中,我们经常使用到二维数组:

a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

而在这边我们只是换了一种写法,就是一行一行的定义,在第二个实例中的输出跟c语言的二维输出其实是一样的,只是将数字变为了字符串。

数组排序

数组中的元素可以按照字母或者数字顺序进行降序或升序排列,数组排序我们使用的是数组排序函数:

  • sort()-对数组进行升序排列
  • rsort()-对数组进行降序排列
  • asort()-根据关联数组的值,对数组进行升序排列
  • ksort()-根据关联数组的键,对数组进行升序排列
  • arsort()-根据关联数组的值,对数组进行降序排列
  • krsort()-根据关联数组的键,对数组进行降序排列

sort()-对数组进行升序排列

对字符串进行排序:
在这里插入图片描述
对数字进行排序:
在这里插入图片描述

rsort()-对数组进行降序排列

将数组元素按照字母降序排列:
在这里插入图片描述
对数组元素按照数字降序排列:
在这里插入图片描述

asort()-根据数组的值,对数组进行升序排序

在这里插入图片描述

ksort()-根据数组的键,对数组进行升序排列

在这里插入图片描述

arsort()-根据数组的值,对数组进行降序排列

在这里插入图片描述

krsort()-根据数组的键,对数组进行降序排列

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值