AI 摘要

本文系统梳理 PHP 数组核心知识:先区分索引与关联数组,再演示 array()、[]、赋值三种声明方式;继而讲解用键访问、isset 检测,foreach 遍历及 unset 删除;随后介绍联合、相等、全等等数组运算符;最后分类盘点指针、元素、排序、检索及其他高频函数,并辅以可运行示例,帮助开发者快速掌握数组的创建、操作与高效应用。

数组的基本使用

初识数组

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

在 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+$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));

示例效果: