本文实例讲述了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.数组操作符
不仅前面讲解的标量数据类型可以进行比较运算,数组这种复合数据类型也可以进行运算,不过数组有其专门提供的数组操作符进行对应的运算。
“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第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数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《PHP数学运算技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
PHP,数组
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】
- 谭咏麟.2022-倾·听【环球】【WAV+CUE】
- 4complete《丛生》[320K/MP3][85.26MB]
- 4complete《丛生》[FLAC/分轨][218.01MB]
- 羽泉《给未来的你&天黑天亮》[WAV+CUE][968M]
- 庄心妍《我也许在等候》[低速原抓WAV+CUE]
- 王雅洁《小调歌后2》[原抓WAV+CUE]
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】