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

数组的基本使用

初识数组

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

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

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

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

定义数组

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

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

PHP 复制代码
// 定义索引数组
$数组 = array("值", "值", "...");

// 定义关联数组
$数组 = array("键" => "值", "键" => "值", ...);

// 定义混合数组
$数组 = array("值", "值", "键" => "值", "键" => "值", ...);

// 定义二维数组
$数组 = array(
	"键" => array(...),
	...
);

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

PHP 复制代码
$数组[] = "值";

$数组[键] = "值";

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

PHP 复制代码
$数组 = ["值", "值", "..."];

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

访问数组

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

访问数组的基本用法:

PHP 复制代码
$数组[键];

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

isset 函数的基本用法:

PHP 复制代码
isset($array[$key]);

示例:访问数组

入口页面(index.php):

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 语句遍历数组的基本用法:

PHP 复制代码
foreach($数组 as $键 => $值) {
	// ...
}

示例:遍历数组

入口页面(index.php):

PHP 复制代码
<?php
$user = [
    "name" => "John",
    "age" => 30,
    "city" => "XiaMen"
];

foreach ($user as $key => $value) {
    echo "$key: $value<br>";
}

示例效果:


删除数组元素

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

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

unset 函数的基本用法:

PHP 复制代码
unset($array[$key]);

示例:删除数组元素

入口页面(index.php):

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 复制代码
<?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 复制代码
<?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 复制代码
<?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 复制代码
<?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 复制代码
<?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 复制代码
<?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));

示例效果:


相关推荐
石像鬼₧魂石2 小时前
netsh wlan 常用命令速查表
服务器·网络·php
三七吃山漆2 小时前
[网鼎杯 2020 青龙组]AreUSerialz
php·反序列化·网鼎杯
多仔ヾ2 小时前
PHP 基础案例教程之 03-函数
php
百***07453 小时前
小米MiMo-V2-Flash深度解析:国产开源大模型标杆+一步API接入全指南
java·大数据·开源·php
刃神太酷啦3 小时前
Linux 基础 IO 收官:库的构建与使用、进程地址空间及核心知识点全解----《Hello Linux!》(11)
java·linux·c语言·数据库·c++·算法·php
开开心心就好3 小时前
视频伪装软件,.vsec格式批量伪装播放专用
java·linux·开发语言·网络·python·电脑·php
weixin_BYSJ19874 小时前
django农作物批发交易系统--附源码24008
java·javascript·spring boot·python·django·flask·php
计算机毕业设计开发4 小时前
django高校公寓管理系统--附源码64226
java·c++·spring boot·python·spring cloud·django·php
Physicist in Geophy.5 小时前
b-value explain by first principle
开发语言·php