PHP数组基本用法与知识点总结


Posted in PHP onJune 02, 2020

本文实例讲述了PHP数组基本用法与知识点。分享给大家供大家参考,具体如下:

初识数组

  • 概念: 数组就是一个可以存储一组或一系列数值的变量
  • 数组组成: 数组是由一个或多个数组元素组成的
  • 数组元素: 一每个数组由键(Key)和值(Value)构成
  • 键: "键"为元素的是被名称,也被称为数组下标
  • 值: “值”为元素的内容
  • 映射:“键”和“值”之间存在一种对应关系,称之为映射
  • 类型划分: 根据键的数据类型,可以将数组划分为索引数组和关联数组,前者使用数字作为键,后者使用字符串作为键。

1. 索引数组

索引数组: 指键名为整数的数组。默认情况下,索引数组的键名是从0开始,并依次递增。它主要适用于利用位置来标识数组元素的情况。另外,索引数组的键名也可以自己指定

2.关联数组

关联数组: 指键名为字符串的数组。通常情况下,关联数组元素的“键”和“值”之间有一定的义务逻辑关系。因此,通常使用关联数组储存一系列具有逻辑关系的变量。关联数组的“键”都是字符串,并与“值”之间具有意义对应的关系

数组的基本使用

1. 创建数组的方式

  • 使用array()函数 创建数组
  • 赋值方式
  • 短数组定义法(php5.4增加的)

1.数组的创建——array()语言结构方式

array()语言结构中的数组元素使用“键=>值”的方式进行表示,各元素之间使用逗号进行分割。

//定义索引数组
$fruits = array('apple', 'grape', 'pear'); // 省 略键名
$sports = array(2 => 'basketball', 4 => 'swimming'); // 指定键名

数组在省略键名的设置时,默认从0开始,依此递增加1,因此该数组元素的键名依次为“0、1、2”。
除此之外,还可以根据实际需求自定义数组元素的键名,如上述示例中的$sports数组变量,将其第1个元素键名设置为2,第2个元素的键名设置为4

2. 数组的定义——array()语言结构方式

//定义关联数组
$info = array('id' => 10, 'name' => 'Tom', 'tel' => 18810888188);

在定义关联数组时 “键”则有明确的数据类型要求,具体如下。

  • 键只能是整型或字符串型的数据,如果是其他类型,则会执行类型自动转换
  • 合法整型的字符串会被转为整型,如“2”转为2,而“02”则不会被转换
  • 浮点数会被舍去小数部分直接转换成整型,如“2.6”转为2
  • 布尔类型的true会被转为1,false转为0
  • NULL类型会被转为空字符串
  • 若数组中存在相同键名的元素时,后面的元素会覆盖前面元素的值

在定义数组时,还可以定义没有任何元素的数组,以及既有索引表示方式、又有关联表示方式的数组元素。

//定义混合数组
$temp = array();
$mixed = array(2, 'str', 'id' => 5, 5 => 'b', 'a');
  • $mixed数组的元素“b”指定了数字键名为“5”
  • “b”元素后的“a”元素会自动将前面最大的数字键名加1后,作为其键名,即5+1得到键名6。
//定义多维数组
$data = array(
 0 => array('name' => 'Tom', 'gender' => '男'),
 1 => array('name' => 'Lucy', 'gender' => '女'),
 2 => array('name' => 'Jimmy', 'gender' => '男')
);

3. 数组的定义——赋值方式

使用赋值方式定义数组,实际上就是创建一个数组变量,然后使用赋值运算符直接给变量赋值。

//赋值方式
$arr[] = 123;  // 存储结果:$arr[0] = 123
$arr[] = 'hello';  // 存储结果:$arr[1] = 'hello'
$arr[4] = 'PHP';  // 存储结果:$arr[4] = 'PHP'
$arr['name'] = 'Tom'; // 存储结果: $arr['name'] = 'Tom'
$arr[] = 'Java';  // 存储结果:$arr[5] = 'Java'

赋值方式定义数组就是单独为数组元素赋值。需要注意的是,赋值方式不能定义一个空数组。

4. 数组的定义——短数组定义法

短数组定义法([])与array()语法结构相同,只需将array()替换为[]即可

//短数组定义法
 // 相当于:array('wind', 'fine')
$weather = ['wind', 'fine'];
// 相当于:array('id' => 12, 'name' => 'PHP')
$object = ['id' => 12, 'name' => 'PHP'];
// 相当于:array(array(1, 3), array(2, 4))
$num = [[1, 3], [2, 4]];

2.访问数组

数组定义完成后,若想要查看数组中某个具体的元素,则可以通过“数组名[键]”的方式获取。

```
//数组名[键]
$sub = ['PHP', 'Java', 'C', 'Android'];
$data = ['goods' => 'clothes', 'num' => 49.90, 'sales' => 500];
echo $sub[1]; // 输出结果:Java
echo $sub[3]; // 输出结果:Android
echo $data['goods']; // 输出结果:clothes
echo $data['sales']; // 输出结果:500
```

若要一次查看数组中的所有元素,则可以利用前面学习过的输出语句函数print_r()和var_dump(),并且通常情况下为了使输出的函数按照一定的格式打印,查看时经常与pre标记一起使用。

3.遍历数组

所谓遍历数组就是一次访问数组中所有元素的操作。通常情况下,使用foreach()语句完成数组的遍历。

//方式一
foreach (数组名称 as 键 => 值) {
  // 处理语句
}
//方式二
foreach (数组名称 as 值) {
  // 处理语句
}

“键”和“值”的变量名可以根据实际情况随意设置

4.数组的删除

在数组定义完成后,有时也需要根据实际情况去除数组的某个元素。

5.数组操作符

不仅前面讲解的标量数据类型可以进行比较运算,数组这种复合数据类型也可以进行运算,不过数组有其专门提供的数组操作符进行对应的运算。

PHP数组基本用法与知识点总结

“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第1个数组内的元素。

$num = [2, 4];
$alp = ['a', 'b', 'c'];
$mer1 = $num + $alp;
$mer2 = $alp + $num;
print_r($mer1); // 输出结果:Array ( [0] => 2 [1] => 4 [2] => c ) 
print_r($mer2); //

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php addslashes 函数详细分析说明
Jun 23 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
深入解析phpCB批量转换的代码示例
Jun 27 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP使用xpath解析XML的方法详解
May 20 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 PHP
YII框架页面缓存操作示例
Apr 29 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 #PHP
PHP与Web页面交互操作实例分析
Jun 02 #PHP
PHP Web表单生成器案例分析
Jun 02 #PHP
一文看懂PHP进程管理器php-fpm
Jun 01 #PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 #PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 #PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 #PHP
You might like
php你的验证码安全码?
2007/01/02 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PDO::errorInfo讲解
2019/01/28 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
文秘专业大学生求职信
2013/11/10 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
实习鉴定范文
2013/12/19 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
车间主任岗位职责
2015/02/03 职场文书
承诺书模板大全
2015/05/04 职场文书
贫困证明怎么写
2015/06/16 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
python实现批量移动文件
2021/04/05 Python
Mysql基础知识点汇总
2021/05/26 MySQL
浅谈Python魔法方法
2021/06/28 Java/Android