设为首页 收藏本站
查看: 912|回复: 0

[经验分享] php编程基础(四)数组

[复制链接]

尚未签到

发表于 2017-3-28 10:42:24 | 显示全部楼层 |阅读模式
数组

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

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

声明方式
直接赋值
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()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356312-1-1.html 上篇帖子: PHP文件下载过滤类 下篇帖子: php多文件上传`
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表