php笔记之数组

数组初步

概念

数组是一种数据的集合

数组主要是用于存储具有行列特征(表格)的数据

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

用于解压数组,将关联元素转换为以键名为变量名的变量

 数组的相关算法

排序算法

冒泡排序法

 插入排序法

 查找算法

顺序查找法:

二分查找算法

前提:

       数组一定是有序,且元素不能重复。

 

猜你喜欢

转载自www.cnblogs.com/zhangcheng94/p/12206834.html