PHP 检查数组中是否存在键

Shraddha Paghdar 2023年1月30日
  1. 使用 array_key_exists() 函数检查 PHP 数组中是否存在键
  2. 使用 isset() 函数检查 PHP 数组中是否存在键
  3. PHP 中的 array_key_exists()isset()
PHP 检查数组中是否存在键

数组是 PHP 中的单个变量,其中包含许多元素。存储在数组中的每个元素都有一个唯一的索引,就像分配给它的数据库中的主键一样。你可以使用该索引访问数组的元素。你的脚本可能需要检查特定键是否存在才能对值执行操作。在本教程文章中,我们将讨论如何检查数组中是否存在特定键。

PHP 支持三种类型的数组:

  1. 索引数组 - 带有数字索引的数组,其中仅提供值。例如。数组(1,2,3)
  2. 关联数组 - 具有命名键的数组,其中键也像 JSON 对象一样与值一起定义。例如。数组(第一个 => 1,第二个 => 2)
  3. 多维数组——包含一个或多个嵌套数组的数组。例如。数组(数组(abc),数组(def),数组(ghi))

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
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

相关文章 - PHP Array