【PHP】数组
一、生活中的数组:
a) 教室的座位:第一天来教室的时候,每个座位上都有自己的一个名字,我们可以通过这个名字快速定位到自己的座位在什么位置!
b) 电影院的座位:我们买了电影票之后,能够通过电影票上面的座位号准确的定位到自己的座位在什么位置!
c) 快速定位法:我可以通过你的名字,快速的找到你!
d) 我也可以通过座位的编号,快速的找到你!
二、 PHP当中的数组:
a) 在此之前,我们学习过变量一个存储值的方式,但是因为变量只能够存储一个值,因此无法满足我想存储多个值的欲望!因此,我们需要学习到PHP当中的这么一个数组!
b) 如何来学习数组?
i.首先我们得知道数组的分类
ii.其次我们得知道数组的定义
iii.然后我们得知道数组的使用
iv.最后我们得知道数组的遍历
c) 数组的分类:
i.索引式数组:
1.下标(键、索引)由整数组成的值叫做索引式数组
ii.关联式数组:
1.下标(键、索引)由字符串组成的值叫做关联式数组
iii.数组的单元:
1.数组当中由一个下标以及下标指向的值所组成的这样一个整体,就是数组的一个单元,也可以称之为元素
d)数组的定义:
i.直接赋值方式定义:
1.不指定数组的下标,定义一个索引式数组:
a) $a[ ] = 10;
b) $a[ ] = 20;
c) $a[ ] = 30;

注意:数组的下标如果没有指定,那么它会默认从0开始
2. 指定数组的下标,定义一个索引式数组:
1 $b[20] = 40;
$b[0] = 10;
$b[1] = 20;
$b[2] = 30;
unset($b[20]);
$b[] = 50;
7 var_dump($b);

a) 注意:
i.指定数组下标的时候可以任意指定
ii.数组并不会自动排序
iii.指定下标数组当中,如果出现了没有指定下标的定义方式,则该单元的下标则默认去寻找上次所出现过的最大的下标,在其基础之上+1
3. 指定数组的下标,定义了一个关联式数组:
1 $stu[‘name’] = ‘梦梦’;
$stu[‘sex’] = ‘女’;
$stu[‘age’] = 18;
$stu[‘money’] = true;
$stu[‘tall’] = 160.00;
$stu[‘zuoye’] = null;
7 var_dump($stu);

a) 注意:
i.关联式数组的下标,就是有意义的字符串,我们能够很直观的通过字符串,了解它所存储的值是什么
ii.关联式数组可以和索引式数组并存,但是这样写并没有什么意义,所以不推荐
iii.无论是关联式数组,还是索引式数组,他们都可以存储各种类型的值!
ii.使用array语言结构定义(最常用):
1. 不指定数组下标,定义了一个索引式数组
a) $a = array(10,20,30,40,50);
2. 指定数组下标,定义了一个索引式数组
a) $b = array(0=>10,10=>20,2=>30,3=>40,4=>50,60);
3. 指定数组下标,定义了一个关联式数组
a) $stu = array('name'=>'楠楠','sex'=>'','age'=>16,'money'=>true,'tall'=>180);
iii.使用快捷方式定义:
1. 不指定数组下标,定义了一个索引式数组
a) $a = [10,20,30,40,50];
2. 指定数组下标,定义了一个索引式数组
a) $b =[0=>10,1=>20,2=>30,3=>40,4=>50];
3. 指定数组下标,定义了一个关联式数组
a) $stu = ['name'=>'海波','sex'=>'男','age'=>18,'money'=>false,'tall'=>120];
e)数组的使用方式:
i.一维数组:
1 $stu = array(
‘name’ => ‘张三’,
‘age’ => 18,
‘sex’ => ‘男’,
‘money’ => true
);
$stu[‘money’]; //这样就去到了下标 ‘money’ 所对应的 true这个值
ii.获取一个一维数组当中的指定值的方式就是,通过存储数组的变量名,去寻找指定的下标即可!
f)多维数组的定义:
i.一维数组:
1 $stu = array(
'name'=>'仉浩焱',
'sex'=>'女',
'age'=>108,
'hunfou'=>false,
);
ii.二维数组:
1 $stu = array(
0=>array('name'=>'许超','sex'=>'女','age'=>16,'hunfou'=>false),
1=>array('name'=>'大嘴','sex'=>'男','age'=>7,'hunfou'=>true),
2=>array('name'=>'仉浩焱','sex'=>'半男不女','age'=>58,'hunfou'=>true),
);
iii.三维数组:
1 $stu = array(
2 'first'=>array(
0=>array('name'=>'许超','sex'=>'女','age'=>16,'hunfou'=>false),
1=>array('name'=>'大嘴','sex'=>'男','age'=>7,'hunfou'=>true),
2=>array('name'=>'仉浩焱','sex'=>'半男不女','age'=>58,'hunfou'=>true),
),
'second'=>array(
0=>array('name'=>'小花','sex'=>'男','age'=>26,'hunfou'=>false),
1=>array('name'=>'大明','sex'=>'女','age'=>36,'hunfou'=>true),
2=>array('name'=>'小明','sex'=>'男','age'=>46,'hunfou'=>false),
11 ),
12 );
iv.注意事项:
1. 多维数组的定义最好不要超过三维,否则会逻辑混乱。
2. 多维数组在定义的时候,需要注意数组当中单元之间的分隔符号
g)多维数组的使用:
i.记住一个原则:无论几维数组,我们都是通过存储数组的变量,去找指定的下标即可!
三、 数组的遍历:
a)我们就可以理解为是将一组数据、一队人物,一批事物进行了逐一排查,检查,评定,审核等等这样的一个过程,就是遍历!
i.使用for循环,配合count()函数、array_values()函数、reset()函数来进行遍历[参考10.php实例]
ii.使用foreach进行比遍历【最常用】
1. Foreach是专门给数组遍历而准备!
2. 遍历数组的所有单元的值
foreach(要遍历的数组 as 遍历之后存储结果的变量 ){
遍历的过程!
}
3. 遍历数组的所有单元的键和值
foreach(要遍历的数组 as 存键的变量 => 存值的变量){
使用存键的变量和存值的变量获取相应的信息
}
4. 注意:
a) 注意foreach的语法结构
b) 注意foreach后方括号中存键的变量和存值的变量,如果只写一个存值的变量,取的时值;只有两个变量同时给定,才能获取键和值!
c) 取值或下标和变量的名字是没有关系的!
iii.While循环、配合list、each、reset函数的遍历(了解)
iv.使用do…while循环,配合reset、end、key、current、next、prev函数进行遍历(了解)
四、 超全局数组传递信息:
a) $_GET可以接受使用GET方式传值的表单,也可以接受使用a链接传递的内容,只要拥有URL地址的地方所传递的信息,都属于是GET传值!
b) $_POST可以接受POST方式传值的表单
c) $_REQUEST可以接受GET方式和POST方式的传值,但是因为接收速度较慢,因此不推荐使用
【PHP】数组的更多相关文章
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- JavaScript常见的五种数组去重的方式
▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...
- js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的
题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...
- javascript数组查重方法总结
文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...
- 掌握javascript中的最基础数据结构-----数组
这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...
- 小兔JS教程(四)-- 彻底攻略JS数组
在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...
随机推荐
- Simulink仿真入门到精通(十五) Simulink在流程工业中的仿真应用
15.1 工业乙醇生产与计算机仿真 乙醇作为可再生清洁能源不仅可以代替四乙基铅作为汽油的防爆剂,还可以制造汽油醇.这一巨大的潜在需求促使人们去寻找提高乙醇工业生产率的途径,使人们着手于发酵工程的研究. ...
- Vue2.0 【第二季】第1节 Vue.directive自定义指令
目录 Vue2.0 [第二季]第1节 Vue.directive自定义指令 一.什么是全局API? 二. Vue.directive自定义指令 三.自定义指令中传递的三个参数 四.自定义指令的生命周期 ...
- .NET实现一个简单的IOC容器
目录 1.主要细节 2.具体示例 参考及示例代码下载 shanzm-2020年3月17日 20:06:01 1.主要细节 使用反射程序集的方式获取对象的类型 通过反射的方式获取指定类型的的所有公共属性 ...
- POJ 1879
栈和队列的综合应用,利用栈和队列分别模拟分,5分,时槽,以及小球队列 利用求出一天后的置换可以求出周期,进而求出最大公约数(可以利用矩阵的角度,也许可以简化,因为每次都是乘上一个相同的置换矩阵) 要注 ...
- 源码解读 Golang 的 sync.Map 实现原理
简介 Go 的内建 map 是不支持并发写操作的,原因是 map 写操作不是并发安全的,当你尝试多个 Goroutine 操作同一个 map,会产生报错:fatal error: concurrent ...
- 【简说Python WEB】flask-mail电子邮件异步Asynchronous
系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 flask-mail电子邮件异步Asynchronou ...
- 手把手教你用java实现syslog消息的收发,学不会你打我喽!
大家好,我是道哥,专注于后端java开发,喜欢写作和分享.如果觉得文章对你有用,那就点个赞呗!如果能转发那是对道哥最大的支持! syslog的定义 见文知义,syslog,从英文名字上可以看出是指系统 ...
- Linux上安装配置Keepalived
Linux上安装配置Keepalived 1.下载 自行去Keepalived官网进行下载,也可以通过如下链接进行下载2.0.18版本(目前的稳定版) 链接:https://pan.baidu.com ...
- H3C路由器地址池租期时间H3CMSR830-6BHI-WiNet
H3C路由器地址池租期时间H3CMSR830-6BHI-WiNet 设备H3CMSR830-6BHI-WiNet 先输入dis dhcp server tree pool 查看地址池名称,然后 < ...
- WEB应用之httpd基础入门(五)
前文我们聊到了httpd的启动用户和相关权限的说明,资源压缩配置.https的实现,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12593675.html:今 ...