初识数组

这篇博客介绍了数组的基础知识,包括初始数组、索引数组与关联数组的定义。详细讲解了如何使用`array()`语言结构创建数组,包括自定义键名、赋值方式以及短数组定义法。还阐述了访问、遍历、删除数组元素的方法以及数组操作符的使用,特别是数组的合并运算。

一,初始数组

1,初始数组
  • 数组构成:数组是由一个或多个数组元素组成的
  • 数组元素:一每个数组元素由键(Key)和值(Value)构成
  • 键:“键”为元素的识别名称,也被称为数组下标
  • 值: “值”为元素的内容
  • 映射: “键”和“值”之间存在一种对应关系,称之为映射
  • 类型划分:根据键的数据类型,可以将数组划分为索引数组和关联数组,前者使用数字作为键,后者使用字符串作为键。
2,索引数组与关联数组
  • 索引数组是指键名为整数的数组。默认情况下,索引数组的键名是从0开始,并依次递增。它主要适用于利用位置(0、1、2……)来标识数组元素的情况。另外,索引数组的键名也可以自己指定。
    在这里插入图片描述
  • 关联数组是指键名为字符串的数组。通常情况下,关联数组元素的“键”和“值”之间有一定的业务逻辑关系。因此,通常使用关联数组存储一系列具有逻辑关系的变量。关联数组的“键”都是字符串,并与“值”之间具有一一对应的关系。
    在这里插入图片描述

二,数组的基本使用

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

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

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

数组在省略键名的设置时,默认从0开始,依次递增加

  • 因此该数组元素的键名依次为“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类型会被转为空字符串
    • 若数组中存在相同键名的元素时,后面的元素会覆盖前面元素的值
3,数组的定义——array()语言结构方式

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

$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' => '男')
);
4,数组的定义——赋值方式

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

$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'

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

5,数组的定义——短数组定义法([])
// 相当于: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]];
6,访问数组

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

$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
7,遍历数组
foreach (数组名称 as 键 => 值) {
    // 处理语句
}
foreach (数组名称 as 值) {
    // 处理语句
}

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

$info = ['id' => 1, 'usr' => 'Jacie', 'age' => 18];
// 使用方式一
foreach ($info as $k => $v) {
    echo $k . ': ' . $v . ' ';	// 输出的结果:id: 1 usr: Jacie age: 18
}
// 使用方式二
foreach ($info as $v) {
    echo $v . ' ';		// 输出的结果:1 Jacie 18
}
8,数组的删除

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

9,数组操作符

不仅前面讲解的标量数据类型可以进行比较运算,数组这种复合数据类型也可以进行运算,不过数组有其专门提供的数组操作符进行对应的运算。
在这里插入图片描述
“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第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);	 // 输出结果:Array ( [0] => a [1] => b [2] => c )

最后感谢大家的观看

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值