目录

  • 1 数组简介
  • 2 一维数组的创建、访问和遍历
    • 2.1 数组的创建
    • 2.2 数组的访问
    • 2.3 数组的遍历
  • 3 多维数组的创建与访问
  • 4 预定义超全局数组变量
  • 5 数组内置函数
  • 6 归纳
  • 参考文章

1 数组简介

(1)定义: 数组是一个能在单个变量中存储多个值的特殊变量
(2)本质:PHP中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。

(3)数组由键值对组成,键名(key)和键值(value)。
(4)数组元素:除了对象,可存放任意类型的数据,包括数组。

(5)数组按键名命名方式可以分为两类

  • 数值数组:键名是整型正数,也称为索引数组。
  • 关联数组:键名是具有语义的字符串

2 一维数组的创建、访问和遍历

2.1 数组的创建

有两种方法创建数组。
(1)第一种创建方式语法为:$数组名[]=键值

  • 1)在未指定键名的情况下,给数组赋值,键名从零开始计数,依次增大。具体实例如下:
<?php
$stu[]="dzz";
$stu[]=24;
$stu[]=true;
$stu[]=99;
echo "<pre>";
print_r($stu);  //输出数组,echo只能输出普通变量
echo "<br/>";
var_dump($stu);
?>

上述代码的运行结果如下:

  • 2)可以手动给键名,键名可以为整型数字也可以是字符串。具体实例如下:
<?php
$stu[10]="dzz";
$stu[20]=24;
$stu[30]=true;
$stu[40]=99;echo "<pre>";
print_r($stu);  //输出数组,echo只能输出普通变量
echo "<br/>";
var_dump($stu);
?>

上述代码的运行结果如下:

<?php
//指定字符串键名
$stu['name']="dzz";
$stu['age']=24;
$stu['sex']=true;
$stu['grade']=99;echo "<pre>";
print_r($stu);  //输出数组,echo只能输出普通变量
echo "<br/>";
var_dump($stu);
?>

上述代码的运行结果如下:

(2)第二种创建方式采用array结构创建数组,语法为数组名=array(键值,键值,...,键值)

  • 1)未指定键名创建数组,键名从零开始计数,依次增大。具体实例如下:
 <?php
//未指定健名
$stu1=array("dzz",24,true,99);  //创建数组
echo "<pre>";
print_r($stu1);  //输出数组,echo只能输出普通变量
echo "<br/>";
var_dump($stu1);
?>

上述代码运行结果如下:

  • 2)指定键名创建数组,具体实例如下:
<?php
$stu2=array('name' => 'MDM','age' => 23,'sex' => false,'grade'=> 78
);
var_dump($stu2);

上述代码运行结果如下:

?>


2.2 数组的访问

可以通过数组名与键名来访问数组。数组的访问包括①数组的读取;②数组的添加;③数组的修改。注意数组的添加与修改的区别在于,对数组进行修改时,需要指定键名,且指定的键名是已存在的。实例如下:

<?php
echo "<pre>";
echo "<hr/>";
$stu2=array('name' => 'MDM','age' => 23,'sex' => false,'grade'=> 78
);
var_dump($stu2);
echo "<hr/>";//想访问$stu2的名字
echo $stu2['name'];
echo "<hr/>";//给$stu2增加一个键值对
$stu2[]=168;
var_dump($stu2);
echo "<hr/>";//将$stu2的grade键名对应的键值改为98;
$stu2['grade']=98;
var_dump($stu2);
?>

上述代码的运行结果为:

2.3 数组的遍历

遍历数组可以采用for循环和foreach循环。两种循环语句用法可参考文章《【PHP基础-4】PHP流程控制语句》
(1)for循环。只适用于有规律的索引数组。

<?php
echo "<pre>";
//未指定健名
$stu1=array("dzz",24,true,99); //创建数组
var_dump($stu1);
//for循环遍历$stu1
for($i=0;$i<count($stu1);$i++){echo $stu1[$i]."<br/>";
}
?>

上述代码的运行结果为:

(2)foreach循环。

<?php
echo "<pre>";
$stu2=array('name' => 'MDM','age' => 23,'sex' => false,'grade'=> 78
);
var_dump($stu2);
//foreach循环遍历$stu2
foreach($stu2 as $key => $value){echo $key." => ".$value."<br/>";
}
?>

上述代码的运行结果为:

3 多维数组的创建与访问

<?php
echo "<pre>";
$students=array(1 => array("dzz",24,true,99),2 => array("MDM",23,false,78),3 => array("XL",25,true,65)
);
print_r($students);
echo "<hr/>";//想访问第一个学生的成绩
echo $students[1][3];
?>

上述代码执行结果如下:

4 预定义超全局数组变量

定义:是指PHO定义好了的,可以直接使用。其中,超全局是指函数内部和外部均能使用。

名称 作用
$GLOBALS 引用全局作用域中可用的全局变量
$_SERVER 一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_GET 接受来自于URL传递给当前脚本的变量的数组,例如:http://localhost/PHP/array/get.php?name=Dzz&passwd=123456,参数的名会成为该数组的键名,参数的值会称为该数组的键值
$_POST 当HTTP POST请求的 Content-Type 是application/x-www-fprm-urlencoded 、multipart/form-data时,会将变量以关联数组形式传入当前脚本 ,即接受HTTP POST请求传递过来的参数
$_FILES 通过HTTP POST方式上传的文件相关信息
$_COOKIE 通过HTTP Cookie方式传递给当前脚本的变量的数组
$_SESSION 当前脚本可用SESSION变量的数组
$_REQUEST 默认情况下包含了$_GET, $_POST和 $_COOKIE的数组
$_ENV 通过环境方式传递给当前脚本的变量的数组

5 数组内置函数

使用PHP内置的数组处理函数,将使得数据处理更加高效、代码更加简介。常用的内置函数有:

函数名 作用
array_keys() 函数 返回包含数组中所有键名的一个新数组
array_merge() 函数 用于把一个或多个数组合并为一个数组。
array_key_exists() 函数 检查某个数组中是否存在指定的键名
array_rand() 函数 返回数组中的一个随机键名,或者如果指定函数返回键名不只一个,则返回一个包含随机键名的数组。
array_search() 函数 在数组中搜索某个键值,并返回对应的键名。
array_sum() 函数 返回数组中所有值的和。
array_product() 函数 计算并返回数组的乘积。

6 归纳

掌握两种数组的创建、访问修改、遍历的方法;
了解数组操作函数的查询方法。

参考文章

[1] 《Array相关函数》用于查询可以应用操作数组的函数。
[2] 《【PHP基础】数组》

【PHP基础-6】PHP数组的创建、访问及遍历实例解析相关推荐

  1. 【java图文趣味版】数组元素的访问与遍历

    0 前言 本文适合零基础小白. 本文接上一篇文章:快速搞定数组的声明.开辟空间和初始化赋值 重要的知识点 通过array index访问数组 使用for each循环遍历数组 使用Arrays.toS ...

  2. 【JS基础】Array数组的创建与操作方法

    本文参考:<JS高级程序设计>(红宝书). JS数组的独特性 JS中Array类型属于引用类型,是除了Object之外最常用的类型. JS的数组与其他语言的数组有着相当大的区别,它十分灵活 ...

  3. Julia程序设计3 数组1 创建、初始化、属性与访问

    Julia程序设计3 数组 创建数组 数组的属性 访问数组中的元素 创建数组 1.按列创建数组:如果用中括号创建数组.元素之间用逗号隔开,创建出来的数组就是列向量的形式:用中括号也可以按列创建多维数组 ...

  4. 前端:JS/20/数组(数组的概念,数组元素,数组索引,数组元素的访问,数组的长度,数组的创建方法,数组的操作,实例:使用数组保存个人信息,实例:求数组所有值的平均值,数组对象的length属性)

    数组 1,数组的概念 一组值(或对象)的集合,称为"数组": var arr =[10,20,30,50]; var arr =["张三","男&qu ...

  5. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  6. JavaScript 精粹 基础 进阶(5)数组

    转载请注明出处 原文连接 blog.huanghanlian.com/article/5b6- 数组是值的有序集合.每个值叫做元素,每个元素在数组中都有数字位置编号,也就是索引.JS中的数组是弱类型的 ...

  7. 无法创建t的通用数组_创建通用数组的问题

    无法创建t的通用数组 在这篇文章中,我们将介绍一篇全面的文章,其中介绍了创建通用数组的问题. Java编程语言于2004年9月在Java 5.0" Tiger"发行版中添加了泛型. ...

  8. Java程序设计语言基础04:数组

    目录 1. 数组基础 1.1 创建数组 1.2 使用数组 2. 数组的"名"与"实" 2.1 数组的"名" 2.2 数组的"实&q ...

  9. java二维数组的创建,java二维数组创建方法

    java动态创建二维数组,从零学java笔录-第31篇 图解二位数组在内存中存储,java二维数组动态赋值,java二维数组创建方法 二维数组的定义 type arrayName[ ][ ]; typ ...

最新文章

  1. StringBuilder与 StringBuffer
  2. 简明python教程 --C++程序员的视角(七):异常
  3. linux终端炫酷命令,你不得不知道11个炫酷的 Linux 终端命令
  4. 我更爱荷叶freeeim
  5. 算法高级(9)-线程池的实现方式
  6. 计算机网络拓扑分层,计算机网络和工程实践教程讲座主讲内容网络拓扑和分层体系结构.ppt...
  7. Silverlight 里获取摄像头视频
  8. 学生签到系统java_基于jsp的学生签到-JavaEE实现学生签到 - java项目源码
  9. 世界上第一部智能手机27岁了
  10. Windows下强制删除文件或文件夹
  11. string与int之间转换
  12. 〖Python接口自动化测试实战篇⑥〗- 接口抓包工具 Chrome 的使用
  13. 小孩由祖母带大会越发机灵[图]
  14. JAVA学习 API_day03(字符串编码, 泛型, 数据结构, Collection)
  15. 其实特简单,Python 做一个漂亮女孩词云跳舞的视频
  16. Windows下部署ubuntu16.04+anaconda2.7+tensorflow
  17. macOS-允许打开任何来源的程序
  18. 基于Python+django的 医院排队叫号系统-计算机毕业设计
  19. python-数据分析案例汇总
  20. 我大学大三用一个月时间学完就找到实习的一套Java教程

热门文章

  1. java 定时任务时间设置
  2. java实现装饰模式,JAVA实现装饰模式
  3. 软考报名有没有学历要求?2023年软考报名条件分享
  4. 苹果处理器排行_手机AI性能排行榜:iPhone 11第三,vivo iQOO第五
  5. 2022年最新版Dynamic Web TWAIN的白纸分隔PDF功能(一次扫描输出多份PDF)
  6. 技巧分享:如何去视频水印?
  7. Python中也可以写Excel中的“Vlookup”函数?太牛逼了吧!
  8. 任正非:过去我们是为了赚点小钱,现在是要战胜美国
  9. python-urllib模块【下载图片】
  10. Thymeleaf模板引擎+Spring整合使用方式的介绍