news 2026/2/5 20:57:57

PHP 基础案例教程之 04-数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PHP 基础案例教程之 04-数组

数组的基本使用

初识数组

数组类型属于数据类型中的复合类型,用于存储大批量数据。

在 PHP 中,数组分为索引数组和关联数组。

索引数组即键的数据类型为整型的数组,默认情况下,索引数组的键从 0 开始,依次递增。

关联数组即键的数据类型为字符串型的数组,通常情况下,关联数组的键和值之间有一定的业务逻辑关系,经常使用关联数组来存储具有逻辑关系的变量。

定义数组

在 PHP 中,可以通过 array 结构法、赋值法、短数组定义法来定义数组。

array 结构法定义数组的基本用法:

// 定义索引数组 $数组 = array("值", "值", "..."); // 定义关联数组 $数组 = array("键" => "值", "键" => "值", ...); // 定义混合数组 $数组 = array("值", "值", "键" => "值", "键" => "值", ...); // 定义二维数组 $数组 = array( "键" => array(...), ... );

赋值法定义数组的基本用法:

$数组[] = "值"; $数组[键] = "值";

短数组定义法定义数组的基本用法:

$数组 = ["值", "值", "..."]; $数组 = array("键" => "值", "键" => "值", ...);

访问数组

在 PHP 中,可以通过键访问数组。

访问数组的基本用法:

$数组[键];

使用 isset 函数可以判断变量或数组元素是否存在。

isset 函数的基本用法:

isset($array[$key]);

示例:访问数组

入口页面(index.php):

<?php $user = [ "name" => "John", "age" => 30, "city" => "XiaMen" ]; print_r("数组中是否存在name:"); var_dump(isset($user["name"])); print_r("<br>"); print_r("数组中是否存在sex:"); var_dump(isset($user["sex"]));

示例效果:


遍历数组

在 PHP 中,通常使用 foreach 语句遍历数组。

foreach 语句遍历数组的基本用法:

foreach($数组 as $键 => $值) { // ... }

示例:遍历数组

入口页面(index.php):

<?php $user = [ "name" => "John", "age" => 30, "city" => "XiaMen" ]; foreach ($user as $key => $value) { echo "$key: $value<br>"; }

示例效果:


删除数组元素

在 PHP 中,unset 函数可以删除数组中的元素。

索引数组元素被删除后,数组中的数字键名不会自动填补空缺的数字。

unset 函数的基本用法:

unset($array[$key]);

示例:删除数组元素

入口页面(index.php):

<?php $user = [ "name" => "John", "age" => 30, "city" => "XiaMen" ]; print_r("删除元素前的数组:"); var_dump($user); unset($user["age"]); print_r("<br>删除元素后的数组:"); var_dump($user);

示例效果:


数组运算符

PHP 提供了数组运算符对数组进行运算。

PHP 的基本数组运算符:

名称描述
+联合,a+a+a+b 即 $a 和 $b 的联合
==相等,$a == $b 即 $a 和 $b 有相同的键值对,则为 true
===全等,$a === $b 即 $a 和 $b 有相同的键值对,且顺序和类型都相同,则为 true
!=不等,$a != $b 即 $a 不等于 $b,则为 true
<>不等,$a != $b 即 $a 不等于 $b,则为 true
!==不全等,$a != $b 即 $a 不全等于 $b,则为 true

示例:数组运算符

入口页面(index.php):

<?php $num = [1, 2]; $str = ["a", "b", "c"]; $temp = $num + $str; print_r("数组联合的结果:"); var_dump($temp);

示例效果:


常用的数组函数

指针操作函数

数组指针用于指向数组中的某个元素,默认指向数组的第 1 个元素,通过移动或改变指针的位置,可以访问数组中的任意元素。

指针操作的基本函数:

名称描述
key($array)获取当前指针指向数组元素的键
current($array)获取当前指针指向数组元素的值
next($array)将数组中的指针向后移动一位
prev($array)将数组中的指针向前移动一位
end($array)将数组的指针指向最后一个数组元素
reset($array)将数组的指针指向第一个数组元素

示例:指针操作函数

入口页面(index.php):

<?php $array = ["a", "b", "c", "d"]; print_r("当前指针所在的键是:".key($array).",所在的值是:".current($array)); print_r("<br>"); next($array); print_r("指针向后移动,当前指针所在的键是:".key($array).",所在的值是:".current($array)); print_r("<br>"); end($array); print_r("指针移动到最后,当前指针所在的键是:".key($array).",所在的值是:".current($array)); print_r("<br>"); prev($array); print_r("指针向前移动,当前指针所在的键是:".key($array).",所在的值是:".current($array)); print_r("<br>"); reset($array); print_r("指针移动到最前,当前指针所在的键是:".key($array).",所在的值是:".current($array));

示例效果:


元素操作函数

PHP 提供了一些针对数组元素的操作函数。

元素操作的基本函数:

名称描述
array_shift($array)删除数组开头的元素
array_pop($array)删除数组末尾的元素
array_unshift($array, $value1, …)在数组开头添加元素
array_push($array, $value1, …)在数组末尾添加元素
array_unique($array)去除数组中重复的值
array_slice($array, $start, $length)从数组中截取出部分数组
array_splice($array1, $start, $length, $array2)去掉数组中的一部分元素,并用其他值代替

示例:元素操作函数

入口页面(index.php):

<?php $array = ["a", "b", "c", "d"]; print_r("当前数组:"); var_dump($array); print_r("<br>"); array_shift($array); print_r("删除数组开头的元素后的结果:"); var_dump($array); print_r("<br>"); array_pop($array); print_r("删除数组结尾的元素后的结果:"); var_dump($array); print_r("<br>"); array_unshift($array, "e"); print_r("在数组开头添加元素后的结果:"); var_dump($array); print_r("<br>"); array_push($array, "f"); print_r("在数组结尾添加元素后的结果:"); var_dump($array);

示例效果:


数组排序函数

PHP 内置了数组排序函数,可以很方便地实现对数组的排序。

数组排序的基本函数:

名称描述
sort($array)对数组进行升序排序
rsort($array)对数组进行降序排序
ksort($array)对数组按照键名升序排序
krsort($array)对数组按照键名降序排序
asort($array)对关联数组按照键值进行升序排序
arsort($array)对关联数组按照键值进行倒序排序
shuffle($array)将数组打乱
array_reverse($array)以相反的顺序返回数组

示例:数组排序函数

入口页面(index.php):

<?php $array = ["c", "b", "d", "a"]; print_r("当前数组:"); var_dump($array); print_r("<br>"); sort($array); print_r("数组升序排序后的结果:"); var_dump($array); print_r("<br>"); rsort($array); print_r("数组降序排序后的结果:"); var_dump($array); print_r("<br>"); shuffle($array); print_r("数组打乱后的结果:"); var_dump($array);

示例效果:


数组检索函数

PHP 内置了数组检索函数,可以很方便地对数组中的元素进行查找。

数组检索的基本函数:

名称描述
in_array($value, $array)检查数组中是否存在指定的值
array_search($value, $array)搜索数组中给定的值并返回键名
array_key_exists($key, $array)检查指定的键名是否存在于数组中

示例:数组检索函数

入口页面(index.php):

<?php $array = ["c", "b", "d", "a"]; print_r("数组中是否存在元素b:"); var_dump(in_array("b", $array)); print_r("<br>"); print_r("数组中元素c的键名是:"); var_dump(array_search("c", $array)); print_r("<br>"); print_r("数组中是否存在键名为9的元素:"); var_dump(array_key_exists("9", $array));

示例效果:


其他数组函数

PHP 提供了很多其他常用的数组函数。

数组的其他基本函数:

名称描述
count($array)计算数组中元素的个数
range($min, $max, $step)创建包含指定范围单元的数组
array_keys($array)返回数组中所有的键名
array_values($array)返回数组中所有的值
array_rand($array, $num)返回数组中一个或多个随机的键
array_merge($array1, $array2, …)把一个或多个数组合并为一个数组
array_chunk($array, $size)把一个数组分割为新的数组块
array_sum($array)返回数组中值的和
array_replace($array1, $array2, …)使用后面数组的值替换第一个数组的值

示例:其他数组函数

入口页面(index.php):

<?php $array = ["c", "b", "d", "a"]; print_r("数组中的元素个数:".count($array)); print_r("<br>"); print_r("数组中所有的键名:"); var_dump(array_keys($array)); print_r("<br>"); print_r("数组中所有的值:"); var_dump(array_values($array));

示例效果:


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 8:30:45

无网络环境下fastboot驱动离线安装示例

以下是对您提供的技术博文《无网络环境下 fastboot 驱动离线安装技术分析》的深度润色与结构重构版本。本次优化严格遵循您的全部要求&#xff1a;✅ 彻底去除“引言/概述/总结”等模板化标题&#xff0c;代之以自然、专业、有节奏感的技术叙事逻辑&#xff1b;✅ 所有内容融合…

作者头像 李华
网站建设 2026/2/5 13:37:30

Keil5下载驱动安装失败?工控工程师常用解决方法

以下是对您提供的博文内容进行 深度润色与工程化重构后的版本 。本次优化严格遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言自然、专业、有“人味”&#xff0c;像一位资深工控嵌入式工程师在技术博客中娓娓道来&#xff1b; ✅ 摒弃所有模板化标题&…

作者头像 李华
网站建设 2026/2/5 8:26:39

Qwen-Image-Edit-2511对比2509:角色一致性提升明显

Qwen-Image-Edit-2511对比2509&#xff1a;角色一致性提升明显 Qwen-Image-Edit 系列自发布以来&#xff0c;就以“精准可控的图像编辑”为差异化定位&#xff0c;在开源视觉编辑模型中走出了一条务实路线。当多数模型还在追求单图生成的惊艳感时&#xff0c;Qwen-Image-Edit …

作者头像 李华
网站建设 2026/2/5 4:49:15

arm64 x64交叉编译中GCC工具链配置详解

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。我以一名长期从事嵌入式系统构建、CI/CD流水线设计及ARM64平台落地的工程师视角&#xff0c;彻底重写了全文—— 去除所有AI腔调、模板化结构和空泛术语堆砌&#xff0c;代之以真实开发中踩过的坑、调过的参数、…

作者头像 李华
网站建设 2026/2/5 14:17:29

亲测有效!RTX 4090D上十分钟完成Qwen微调全过程

亲测有效&#xff01;RTX 4090D上十分钟完成Qwen微调全过程 你是否也经历过&#xff1a;想微调一个大模型&#xff0c;却卡在环境配置、依赖冲突、显存报错、参数调优的泥潭里&#xff1f;下载模型要等两小时&#xff0c;装框架报错十七次&#xff0c;跑通第一轮训练前已删了五…

作者头像 李华
网站建设 2026/2/4 2:10:07

系统未知错误,请尝试新建任务或者重启 TRAE。 (1000000)

系统未知错误&#xff0c;请尝试新建任务或者重启 TRAE。 (1000000) 复制请求信息官方求助&#xff1a;反馈日志定位底层BUG 若以上方法均无效&#xff0c;需让开发团队介入&#xff1a;收集日志&#xff1a;找到详细日志文件&#xff08;路径&#xff1a;%USERPROFILE%\.trae\…

作者头像 李华