php编程基础(四)数组

数组

数组本质
管理和操作一组变量,成批处理;
数组是复合类型;数组中可以存储任意长度的数据,也可以存储任意类型数据;
数组可以完成其它语言数据结构的功能(链表,队列,栈,集合类)

索引数组:下标(键)是顺序整数作为索引
关联数组:下标用字符串作为索引

声明方式
直接赋值
a.如果下标不给出,会从0开始顺序索引;
b.如果给出索引下标,下一个下标会从最大下标开始增1;
c.如果后面出现前面已有下标,如果是赋值操作,就是为前面已有元素重新赋值;
d.索引和关联混合声明时,索引和关联互不影响。
$user[] = 1;
$user[] = "zhangsan";

$user["age"]=23;
用array()函数
a.默认是索引数组
b.如果为关联数组和索引数组指定下标,使用 键=>值

$user = array("id"=>1,"name"=>"lisi",99=>"jianjie",100,"nan");

print_r($arr)//打印组


多维数组可以用索引下标和关联下标混合访问


数组遍历
使用for循环
php中不是首选方式,因为要求数组必须是索引数组,而且下标还必须连续。

foreach循环(php首选方式)
foreach(数组变量 as 变量值){循环体}

foreach(数组变量 as 下标变量=>值变量){}

while() list() each()组合循环
each()函数
需要一个数组作为参数
返回一个数组,0,1,key,value四个下标(固定的)
0和key下标是当前参数数组元素的键;
1和value下标是当前对数组元素的值;
默认当前元素就是第一个元素,每执行一次后就会将当前元素向后移动,如到最后一个元素再执行这个函数,则返回false.
list()函数
list() = array();而要将一个数组赋值给这个函数
数组中的元素个数,要和list()函数中的参数个数相同
数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量
list()只能接收索引数组,按索引下标的顺序。

list($name,$age,$sex)= array("zhangli",13,"nan");
echo $name."<br>".$age."<br>".$sex;

数组内部指针控制函数
next(数组)下移
prev(数组)上移
reset(数组)回到第一个
end(数组)到最后一个
current(数组)指针当前所在元素值
key(数组)指针当前所在元素的索引

预定义数组
自动全局变量

1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据;
2.全局范围内自动生效,都可以直接使用这些数组;
3.因为比较特别,用户不能自定义这些数组

$_GET 接收url方式提交到脚本的变量
$_POST 接收http post方式提交到脚本的变量
$_REQUEST 接收get,post和cookie机制提交到脚本的变量,但该数组不值得信任,尽量不使用
$_FILES 接收http post文件上传
$_COOKIE
$_SESSION
$_ENV 执行环境提交至脚本的变量
$_SERVER 由WEB服务器设定的,或直接当前脚本执行环境相关联
$GLOBALS 当前脚本有效的变量都在这,数组键名为全局变量的名称

get,post,request中的数据可以在脚本中直接以变量方式取出,但这样不安全,因为管理员可以把这个功能禁用(php.ini=>register_globals = off)。都可以通过全局数组得到对应数据。


数组处理函数

一,key/value操作有关的函数
array_values()
array_keys()
in_array()
array_key_exists()
array_flip() 交换数组中的键和值
array_reverse() 返回一个单元顺序相反的数组
二,统计数组元素个数和惟一性
count() sizeof()
array_count_values 统计数组中所有的值出现的次数
array_unique 移除数组中重复的值
三,使用回调函数处理数组的函数
array_filter() 用回调函数过滤数组中的单元
array_wlk() 数组中的每个成员应用用户函数
array_map() 将回调函数作用到给定数组的单元上
四,数组排序函数
1.简单数组排序
sort() rsort()
2.根据键名对数组排序
ksort() krsort()
3.根据元素的值对数组排序
asort() arsort()
4.根据自然数排序
natsort() natcasesort()
5.根据用户自定义规则排序
usort() uasort() uksort()
6.多维排序
array_multisort()

五,拆分、合并、分解、接合的数组函数
array_slice()
array_splice()
array_combine()
array_merge() 合并数组,索引重新生成
array_intersect() 交集
array_diff() 差集
六,数组与数据结构的函数
栈,后进先出
入栈:
直接赋值,推荐这种方式,效率比下面这种高
array_push(数组变量,值)
出栈:
$var = array_pop(数组变量);

对列(先进先出),链表
array_unshift(数组),压入
array_shift(数组)弹出对头元素
unset(数组[key]),弹出中间某个

七,其它操作函数
array_rand()数组中随机下标
shuffle() 随机重新排列数组元素
array_sum()
range()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值