我的编程空间,编程开发者的网络收藏夹
学习永远不晚

理解 PHP 中的数组

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

理解 PHP 中的数组

在本文中,我们将了解什么是 PHP 中的数组的基础知识。 我们将学习如何创建数组以及如何使用关联数组和多维数组,并且大家将看到许多使用 PHP 的数组值示例。


什么是 PHP 中的数组?

在 PHP 中,数组是一种数据结构,它允许我们将多个元素存储在单个变量中。 这些元素存储为键值对。 事实上,只要需要存储元素列表,就可以使用数组。 通常情况下,数组中的所有项都具有相似的数据类型。

例如,假设我们要存储水果名称。 如果没有数组,我们最终会创建多个变量来存储不同的水果名称。 另一方面,如果我们使用数组来存储水果名称,它可能看起来像这样:


$array_fruits = array('Apple', 'Orange', 'Watermelon', 'Mango');

如大家所见,我们使用了 $array_fruits 变量来存储不同的水果名称。 这种方法的一大优点是我们可以稍后向 $array_fruits 数组变量添加更多元素。

在 PHP 中有很多方法可以操作数组值——我们将在本文的后面部分探讨这些方法。

如何初始化数组

在本节中,我们将探讨如何在 PHP 中初始化数组变量并在该变量中添加值。

当涉及到数组初始化时,有几种不同的方法。 在大多数情况下,它是用于初始化数组的 array() 语言构造。


$array = array();

在上面的代码片段中,$array 变量是用一个空白数组初始化的。

从 PHP 5.4 开始,我们还可以使用以下语法来初始化数组。


$array = [];

现在,让我们看看如何向这个 PHP 数组数据结构中的数组添加元素:


$array = [];
$array[] = 'One';
$array[] = 'Two';
$array[] = 'Three';
echo '<pre>';
print_r($array);

上面的代码片段应该产生以下输出:


Array
(
    [0] => One
    [1] => Two
    [2] => Three
)

这里要注意的重要一点是 PHP 中的数组索引从 0 开始。每当我们向数组添加一个新元素而不指定索引时,数组会自动分配一个索引。

当然,我们也可以创建一个已经用值初始化的数组。 如果我们已经知道数组的值,这是用 PHP 声明数组的最简洁的方法。


$array = ['One', 'Two', 'Three'];

如何访问数组元素

在上一节中,我们讨论了如何初始化数组变量。 在本节中,我们将探讨几种访问数组元素的不同方法。

访问数组元素的第一个明显方法是通过数组键或索引获取它们。


$array = ['One', 'Two', 'Three'];
// 获取 $array 数组的第一个元素 
echo $array[0];
echo "<br>";
// 获取 $array 数组的第二个元素
echo $array[1];
echo "<br>";
// 获取 $array 数组的第三个元素
echo $array[2];
echo "<br>";

上面的代码片段应该产生以下输出:


One
Two
Three

编写上述代码的一种更简洁的方法是使用 foreach 循环遍历数组元素。


$array = ['One', 'Two', 'Three'];
foreach ($array as $element) {
  echo $element;
  echo '<br>';
}

上面的代码片段应该产生相同的输出,而且它需要更少的代码。

同样,我们也可以使用 for 循环遍历数组元素。


$array = ['One', 'Two', 'Three'];
$array_length = count($array);
for ($i = 0; $i < $array_length; ++$i) {
  echo $array[$i];
  echo '<br>';
}

在这里,我们使用 for 循环遍历数组中的每个索引,然后回显存储在该索引中的值。 在这段代码中,我们介绍了在处理数组时最终会用到的最重要的函数之一:count。 它用于计算数组中有多少个元素。


PHP 中的数组类型

在本节中,我们将讨论可以在 PHP 中使用的不同类型的数组。

数值索引数组

具有数字索引的数组属于索引数组的类别。 事实上,到目前为止我们在本文中讨论的示例都是索引数组。

当我们没有明确指定时,数字索引会自动分配。


$array = ['One', 'Two', 'Three'];

在上面的例子中,我们没有为每个项目明确指定索引,所以它会自动用数字索引初始化。

当然,你也可以使用数字索引来创建索引数组,如下面的 PHP 结构片段所示:


$array = [];
$array[0] = 'One';
$array[1] = 'Two';
$array[2] = 'Three';

也可以使用非连续或从零开始的数字键数组,如下例所示:


$array = [];
$array[3] = 'One';
$array[11] = 'Two';
$array[] = 'Three';
$array[-18] = 'Four';
$array[] = 'Five';
print_r($array);

输出结果如下


Array
(
    [3] => One
    [11] => Two
    [12] => Three
    [-18] => Four
    [13] => Five
)

不要依赖 PHP 中的未知数组来具有顺序数字键,除非我们明确地将其键设置为那样。

关联数组

关联数组类似于索引数组,但我们可以使用字符串值作为数组键。

让我们看看如何定义关联数组。


$employee = [
  'name' => 'Jiyik',
  'email' => 'jiyik@onmpw.com',
  'phone' => '1234567890',
];

或者,我们也可以使用以下语法。


$employee = [];
$employee['name'] = 'Jiyik';
$employee['email'] = 'jiyik@onmpw.com';
$employee['phone'] = '1234567890';

要访问关联数组的值,可以使用索引或 foreach 循环。


$employee = [
  'name' => 'Jiyik',
  'email' => 'jiyik@onmpw.com',
  'phone' => '1234567890',
];

echo $employee['name'];

foreach ($employee as $key => $value) {
  echo $key . ':' . $value;
  echo '<br>';
}

可以看到,这里我们直接查询得到了名字,然后我们使用foreach循环得到了数组中所有的键值对。

多维数组

在我们目前讨论的示例中,我们使用标量值作为数组元素。 事实上,我们甚至可以将数组作为元素存储在其他数组中——这是一个多维数组。

让我们看一下这个 PHP 数组示例:


$employee = [
  'name' => 'Jiyik',
  'email' => 'jiyik@onmpw.com',
  'phone' => '1234567890',
  'hobbies' => ['Football', 'Tennis'],
  'profiles' => ['csdn' => 'jiyik', 'sina' => 'onmpw']
];

如大家所见,$employee 数组中的 hobbies 键包含一个爱好数组。 同样,profiles 键包含不同配置文件的关联数组。

让我们看看如何访问多维数组的值。


$employee = [
  'name' => 'John',
  'email' => 'john@example.com',
  'phone' => '1234567890',
  'hobbies' => ['Football', 'Tennis'],
  'profiles' => ['csdn' => 'jiyik', 'sina' => 'onmpw']
];
// access hobbies 
echo $employee['hobbies'][0];
// Football 
echo $employee['hobbies'][1];
// Tennis 
// access profiles 
echo $employee['profiles']['csdn'];
// jiyik 
echo $employee['profiles']['sina'];
// onmpw

如大家所见,可以使用每个数组部分中该元素的索引或键访问多维数组的元素。


使用 PHP 解包数组值

从 7.4 版开始,PHP 添加了使用扩展 ... 运算符就地扩展数组的功能。


$plant_eaters = ["Horse", "Goat", "Rabbit"];
$meat_eaters = ["Lion", "Tiger", "Crocodile"];
$animals = ["Dog", ...$plant_eaters, ...$meat_eaters, "Cat"];
print_r($animals);

输出结果如下


Array 
( 
[0] => Dog 
[1] => Horse 
[2] => Goat 
[3] => Rabbit 
[4] => Lion 
[5] => Tiger 
[6] => Crocodile 
[7] => Cat 
)

最初,我们只能使用数字键在 PHP 中解压数组值。 但是,PHP 8.1 支持使用字符串键解包数组。 这里有些例子:


$default_colors = ["body" => "red", "heading" => "blue", "sidebar" => "yellow"];
$user_colors = ["body" => "white", "paragraph" => "black"];
$theme_colors = [...$default_colors, ...$user_colors];
print_r($theme_colors);

上述代码执行结果如下


Array 
( 
[body] => white 
[heading] => blue 
[sidebar] => yellow 
[paragraph] => black 
)

我们应该注意,以这种方式解包数组会导致覆盖存储在基于字符串的键中的现有值,而数字键只会重新编号。 在上面的示例中,在 $default_colors 之前解压 $user_colors 会在 $theme_colors 数组中将 body 键的值设置为“red”。


一些有用的 PHP 数组函数

在本节中,我们将介绍一些经常用于数组操作的有用数组函数。

count() 函数

count() 函数用于计算数组中元素的数量。 如果我们想使用 for 循环迭代数组,这通常很有用。


$array = ['One', 'Two', 'Three'];
echo count($array);

但是,在使用 for 循环遍历数组时应该小心。 这是因为无法保证数组中的数字键始终是连续的、从零开始或按简单的升序排列。

is_array() 函数

这是处理数组最有用的函数之一。 它用于检查变量是数组还是其他数据类型。


$array = ['One', 'Two', 'Three'];
// 检查变量是否为数组
if (is_array($array))
{
  // 执行一些数组操作
}

如果不确定数据类型,则应始终在执行任何数组操作之前使用此函数。

in_array() 函数

如果我们想检查数组中是否存在某个元素,可以使用 in_array() 函数。


$array = ['One', 'Two', 'Three'];
// 检查变量是否为数组
if (in_array('One', $array))
{
  echo 'Yes';
}
else
{
  echo 'No';
}

in_array() 函数的第一个参数是要检查的元素,第二个参数是数组本身。

explode() 函数

explode() 函数将字符串拆分为多个部分,并将其作为数组返回。 例如,假设我们有一个以逗号分隔的字符串,并且我们希望以逗号分隔它。


$string = "One,Two,Three";
// 用逗号分解字符串
$array = explode(",", $string);
// 输出应该是一个数组
echo '<pre>';
print_r($array);

输出结果如下


Array 
( 
[0] => One 
[1] => Two 
[2] => Three 
)

explode() 函数的第一个参数是分隔符字符串(我们要拆分的字符串),第二个参数是字符串本身。

implode() 函数

这与 explode() 函数相反——给定一个数组和一个粘合字符串,implode() 函数可以通过将数组的所有元素与它们之间的粘合字符串连接起来来生成一个字符串。


$array = ['One', 'Two', 'Three'];
$string = implode(",", $array);
// 输出应该是一个字符串
echo $string;

implode() 函数的第一个参数是粘合字符串,第二个参数是要内爆的数组。

array_push() 函数

array_push() 函数用于将新元素添加到数组的末尾。


$array = ['One', 'Two', 'Three'];
array_push($array, 'Four');
echo '<pre>';
print_r($array);

输出结果如下


Array 
( 
[0] => One 
[1] => Two 
[2] => Three 
[3] => Four 
)

第一个参数是一个数组,随后的参数是将添加到数组末尾的元素。

array_pop() 函数

array_pop() 函数从数组末尾删除一个元素。


$array = ['One', 'Two', 'Three'];
$element = array_pop($array);
echo '<pre>';
print_r($array);

输出结果如下


Array 
( 
[0] => One 
[1] => Two 
)

array_pop() 函数返回从数组中删除的元素,因此我们可以将其拉入变量。 与 array_push() 一起,此函数可用于实现堆栈等数据结构。

array_slice() 函数

当我们想提取给定数组的某些部分时,array_slice() 函数很有用。 它接受四个参数:数组、要切片的索引、要切片的元素数以及是否保留数字键。 该函数将始终保留字符串键,而不管第四个参数如何。


$people = ["Adam", "Amanda", "Andrew", "Laura", "Monty", "Sally", "Sajal", "Steven"];
$members = array_slice($people, 2, 4);
print_r($members);

输出结果如下


Array 
( 
[0] => Andrew 
[1] => Laura 
[2] => Monty 
[3] => Sally 
)

偏移值也可以是负数。 在这种情况下,切片位置将从数组的末尾开始确定。

array_splice() 函数

array_splice() 函数在您想摆脱数组的一部分和/或用其他东西替换它时很有用。 它还接受四个参数:数组、开始删除的偏移索引、要删除的长度以及删除值的可选替换。


$all_items = ["Charger", "Keyboard", "Smartphone", "Baseball", "Bat", "Mouse"];
$replacements = ["Pen", "Headphones"];
array_splice($all_items, 3, 2, $replacements);
print_r($all_items);

输出结果如下


Array 
( 
[0] => Charger 
[1] => Keyboard 
[2] => Smartphone 
[3] => Pen 
[4] => Headphones 
[5] => Mouse 
)

就是这样——现在大家知道 PHP 中的数组是什么了!

这就是开始在 PHP 中使用数组进行编码所需了解的全部内容。 大家了解了如何创建数组以及如何从中检索元素。 也了解了 PHP 中不同类型的数组,并了解了一些用于处理数组的最有用的内置 PHP 函数。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

理解 PHP 中的数组

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

理解 PHP 中的数组

在本文中,我们将了解什么是 PHP 中的数组的基础知识。 我们将学习如何创建数组以及如何使用关联数组和多维数组,并且大家将看到许多使用 PHP 的数组值示例。什么是 PHP 中的数组?在 PHP 中,数组是一种数据结构,它允许我们将多个元素
理解 PHP 中的数组
2024-02-27

PHP中数组的处理方法

这篇文章主要介绍“PHP中数组的处理方法”,在日常操作中,相信很多人在PHP中数组的处理方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP中数组的处理方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-04

PHP 数组分组函数在数据整理中的应用

php 的 array_group_by 函数可根据键或闭包函数对数组中的元素分组,返回一个关联数组,其中键是组名,值是属于该组的元素数组。PHP 数组分组函数在数据整理中的应用引言数据分组是数据处理中的一项常见任务,它可以帮助我们整理
PHP 数组分组函数在数据整理中的应用
2024-05-04

php中用于处理数组的函数是

php 中的数组处理函数可用于创建、访问、遍历、操作、搜索、排序和类型转换数组。这些函数包括:创建:array()、array_fill()、array_fill_keys()访问:each()、array_walk()、array_map
php中用于处理数组的函数是
2024-04-27

详解PHP中数组函数的知识点

PHP的数组是一种很强大的数据类型,与此同时PHP内置了一系列与数组相关的函数可以很轻易的实现日常开发的功能。所以本文便总结了一些在常见场景中利用PHP内置函数的实现方法,希望对你有所帮助
2022-11-21

深入理解PHP数组反转的算法

php 数组反转有两种方法:array_reverse() 函数:直接修改数组,时间复杂度 o(n)。手动反转方法:创建新数组存储反转元素,时间复杂度 o(n),可自定义操作。深入理解 PHP 数组反转的算法数组反转是一种常见的数据操作,
深入理解PHP数组反转的算法
2024-04-28

PHP中如何处理POST请求中的数组数据?

标题:PHP中如何处理POST请求中的数组数据?在Web开发中,处理表单提交中的数组数据是非常常见的需求。特别是在使用POST请求传递复杂数据结构时,如何正确处理这些数组数据就显得尤为重要。本文将介绍如何在PHP中处理POST请求中的数组
PHP中如何处理POST请求中的数组数据?
2024-03-13

解决PHP数组反转中的陷阱

反转 php 数组时应注意以下陷阱:内置函数可能改变原始数组,应使用 array_values() 创建新数组。关联数组的反转需要自定义函数,例如 array_reverse_assoc()。多维数组的反转可以使用递归函数,例如 array
解决PHP数组反转中的陷阱
2024-04-28

了解PHP中数组的定义方法

标题:PHP中数组的定义方法及具体代码示例PHP中数组是一种非常重要的数据类型,能够存储多个值,并且可以根据索引或者键值进行访问。在PHP中,数组有多种定义方法,本文将介绍其中常用的几种方法,并提供具体的代码示例来帮助理解。1. 索引数
了解PHP中数组的定义方法
2024-03-13

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录