PHP 检查数组中是否存在键
数组是 PHP 中的单个变量,其中包含许多元素。存储在数组中的每个元素都有一个唯一的索引,就像分配给它的数据库中的主键一样。你可以使用该索引访问数组的元素。你的脚本可能需要检查特定键是否存在才能对值执行操作。在本教程文章中,我们将讨论如何检查数组中是否存在特定键。
PHP 支持三种类型的数组:
- 索引数组 – 带有数字索引的数组,其中仅提供值。例如。
数组(1,2,3)
。 - 关联数组 – 具有命名键的数组,其中键也像 JSON 对象一样与值一起定义。例如。
数组(
第一个=> 1,
第二个=> 2)
。 - 多维数组——包含一个或多个嵌套数组的数组。例如。
数组(数组(
a,
b,
c),数组(
d,
e,
f),数组(
g,
h,
i))
。
PHP 提供了两种方法来找出数组是否包含键。首先,我们将了解这两种方法,然后比较它们以获得我们的结果。
使用 array_key_exists()
函数检查 PHP 数组中是否存在键
PHP 提供了内置函数 array_key_exists
,它检查给定的键或索引是否存在于提供的数组中。array_key_exists()
函数适用于索引数组和关联数组,但不会找到多维数组中的嵌套键。array_key_exists()
将仅在第一维中查找键。如果没有键值对存在,则数组将数字键视为从零开始的默认键。
array_key_exists()
的语法
array_key_exists(string|int $key, array $array): bool
参数
-
$key (mandatory)
:该参数指的是需要在输入数组中搜索的键/索引。 -
$array (mandatory)
:这个参数指的是我们想要在其中搜索给定键/索引$key
的原始数组/干草堆。
返回值
如果找到键/索引,则返回 true,如果未找到键/索引,则返回 false。
示例代码
<?php
$search_array = array('first' => 1, 'second' => 2);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is found in the array";
} else {
echo "Key does not exist";
}
?>
输出:
The 'first' element is found in the array
使用 isset()
函数检查 PHP 数组中是否存在键
PHP 提供函数 isset()
,用于确定是否设置了变量;这意味着如果一个变量被声明并赋值为非空值。当变量被赋值为 null 时,isset()
将返回 false。
isset()
的语法
isset(mixed $var, mixed ...$vars): bool
你可以传递许多参数,如果提供了许多参数,那么只有在所有传递的参数都已设置时,isset()
才会返回 true。PHP 从左到右计算并在遇到未设置的变量时立即停止。
参数
-
$var
:要检查的第一个变量。 -
$vars
:要检查的更多变量。
返回值
如果变量存在并且具有除 null 之外的任何值,则返回 true,否则返回 false。
示例代码
<?php
$search_array = array('first' => 1, 'second' => 2);
if (isset($search_array['first'])) {
echo "The 'first' element is found in the array";
} else {
echo "Key does not exist";
}
?>
输出:
The 'first' element is found in the array
PHP 中的 array_key_exists()
与 isset()
isset()
不会为对应于 null
值的数组键返回 true
,而 array_key_exists()
会返回 true
。
<?php
$search_array = array('first' => null, 'second' => 2);
echo isset($search_array['first']) ? "true" : "false";
echo "\n";
echo array_key_exists('first', $search_array) ? "true" : "false";
?>
输出:
false
true
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。