本节我们将学习PHP中的数组。数组是PHP中最重要的数据结构之一,它允许我们以灵活的方式存储和操作多个值。PHP中的数组功能更加强大,它既可以作为索引数组使用,也可以作为关联数组(类似字典)使用。
在PHP中,创建数组的语法格式如下:
<?php /*创建一个空数组*/ $arr = array(); // 或者使用短数组语法(PHP 5.4+) $arr = []; ?>
数组就像一个个紧邻的方格一样,索引数组可以通过下标访问元素,关联数组可以通过键名来访问元素。值得注意的是,关联数组不允许存在重复键,出现重复键名会进行值的覆盖。

对于Dotcpp编程的题目,每道题目都有多个测试用例,这些测试用例可以用数组来存储。下面我们创建一个题目测试用例数组:
<?php // 创建题目测试用例数组 $cases = [ "输入样例1", "输入样例2", ]; ?>
那如何访问数组元素呢?
要知道,数组元素通过索引(基于0-based)来访问。一般来说我们有两种情况来访问数组的元素:
如果此时我们想知道第一个测试用例:
<?php /*方法1 - 方括号表示法*/ echo $cases[0]; // 输出:"输入样例1" /*方法2 - 先获取索引再访问*/ $index = 1; echo $cases[$index]; // 输出:"输入样例2" ?>
关联数组:PHP还支持关联数组,类似于其他语言中的字典或映射:
<?php // 创建题目信息的关联数组 $arr = [ "Dotcpp编程" => "dotcpp.com", "C语言教程" => "https://www.dotcpp.com/course/c/", "数据结构教程" => "https://www.dotcpp.com/course/ds/", "Java教程" =>"https://www.dotcpp.com/course/java/" ]; // 访问关联数组元素 echo $arr["Dotcpp编程"]; // 输出:"dotcpp.com" ?>
数组的常用方法:
众所周知,Dotcpp有很多编程题目,每道题目都需要管理多个测试用例,如果每个用例都单独处理太浪费时间了,此时我们可以使用数组的各种方法来高效操作数据。
<?php /*定义完整的初始测试用例数组*/ $cases = ["输入样例1", "输入样例2"]; // 尾增 $cases[] = "输入样例3"; // 或者使用array_push array_push($cases, "输入样例4"); // 头增 array_unshift($cases, "输入样例0"); // 删除最后一个 $lastCase = array_pop($cases); // 删除第一个 $firstCase = array_shift($cases); // 获取数组长度 $count = count($cases); // 数组合并 $moreCases = ["输入样例5", "输入样例6"]; $allCases = array_merge($cases, $moreCases); ?>
那么如何遍历数组呢?
对于索引数组来说,我们可以通过下标和foreach进行遍历:
<?php
/* 使用for循环遍历索引数组 */
$cases = ["输入样例1", "输入样例2","输入样例3"];//准备初始测试用例数组
/* 遍历下标访问 */
for($i = 0; $i < count($cases); $i++) {
echo $cases[$i] . "<br>";//<br>用于换行
}
/* 使用foreach遍历索引数组(推荐) */
foreach ($cases as $case) {
echo $case . "<br>";//<br>用于换行
}
?>访问test.php:

对于关联数组来说,我们可以通过foreach来遍历:
<?php
/* 关联数组的遍历 */
$arr = [
"PHP教程" => "https://www.dotcpp.com/course/php/",
"C语言教程" => "https://www.dotcpp.com/course/c/",
"数据结构教程" => "https://www.dotcpp.com/course/ds/",
"Java教程" => "https://www.dotcpp.com/course/java/"
];//准备一个关联数组
foreach ($arr as $course => $url) {
echo "课程: " . $course . " - 网址: " . $url . "<br>";}
?>访问test.php:

总结:PHP数组是处理数据集合的强大工具,它兼具了其他语言中数组和字典的功能。通过数组字面量、array()函数或各种数组方法,我们可以高效地存储和操作数据。PHP数组支持索引访问和关联访问,提供了丰富的遍历和变换操作方法!
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程