数组初步
概念
数组是一种数据的集合
数组主要是用于存储具有行列特征(表格)的数据
php的数据的分类
1索引数组
数组的下标是整数,这样的数组就是索引组
2.关联数组
数组的下标是字符串,这样的数组是关联数组
php数组的创建
1.索引数组的创建
示例:
说明:
在php中数组的下标可以不连续
2.关联数组的创建
语法:
$arr = array(键名=>键值, 键名=>键值,….); $arr = [键名=>键值, 键名=>键值,….];
说明:
php中的数组元素由两部分组成,键名(下标),键值
示例:
4.多维数组
php中支持多维数组,如果一个数组的元素又是一个数组,那么这就是多维数组
5.数组元素的访问
一维数组元素的访问
语法:
$数组名[下标/键名]
示例:
二位数组元素的访问
语法:
$数组名[行下标][列下标]
示例:
6.数组的长度
count()
current($arr) 用于当前指针所指向的元素的键值 key($arr) 用于当前指针所指向的元素的键名 next($arr) 用于将数组的指针下移。 prev($arr) 用于将数组的指针上移。 reset($arr); 用于将数组的指针重置(归位,数组的指针默认位于第1个元素)。 end($arr); 用于将数组的指针移到最后一个元素。
用于获取数组的长度
数组的指针
数组的指针用于表示单签所关注的元素
current($arr) 用于当前指针所指向的元素的键值 key($arr) 用于当前指针所指向的元素的键名 next($arr) 用于将数组的指针下移。 prev($arr) 用于将数组的指针上移。 reset($arr); 用于将数组的指针重置(归位,数组的指针默认位于第1个元素)。 end($arr); 用于将数组的指针移到最后一个元素。
示例:
数组的遍历
for
for循环是使用循环控制变量来模拟下标的方式来遍历数据,只能遍历下连续或有规则
foreach
语法:
foreach($arr as 【$key=>】$value){ //循环体 }
说明:
$arr是所要遍历的数组。$key 、$value就是一个变量,变量名可以自定义
示例:
原理:
首先对数组的指针进行重置
读取当前指针所指向的数组元素,并将元素的键名赋值变量$key,将键值赋值给变量$value,同时会将数组的指针下移一行(下移指针是为了下一次循环)
foreach不需要我们控制循环的次数,他会自动判断什么时候结束循环
while-each-list遍历
使用while循环,及each()函数,list语法结构联合来遍历数组
each
each(数组)
说明:
用于获取当前指针所指向的元素键名和键值,并以索引元素和关系元素两种形式表示,同时将指针下移一行
示例:
list
语法:
list(变量列表)=$arr
说明:
将数组$arr中的索引元素赋值给变量列表中的变量
示例:
while-each-list遍历数组
foreach与list连用
语法:
list(变量列表)=$arr
说明:
list语句的右侧必须是数组
示例:
数组操作常用的函数
数组的长度
count(数组名)
array_keys()
获取数组元素所有的键名
array_values()
获取数组元素的所有的键值
示例:
判断键名和键值是否存在
array_key_exists(key,arr)
用于判断某个键名是否存在数组中,如果存在则返回true,否则返回false
in_array(value,arr)
用于判断某个键值是否存在数组中,如果存在则返回true,否则返回false
示例:
数组的合并
array_merge(数组1,数组2)
数组的排序
sort()
对数组按键值进行升序排序
rsort()
对数组进行降序排序
示例:
asort()
对数组进行升序排序,但原下标不会改变
arsort()
对数组键值进行降序排序,但原下标不会变
extract
用于解压数组,将关联元素转换为以键名为变量名的变量
数组的相关算法
排序算法
冒泡排序法
插入排序法
查找算法
顺序查找法:
二分查找算法
前提:
数组一定是有序,且元素不能重复。