首页 > 后端开发 > PHP问题 > php怎么判断某个数是否在数组内

php怎么判断某个数是否在数组内

PHPz
发布: 2023-04-17 17:16:37
原创
673 人浏览过

在 PHP 中,有许多方法可以判断某个数是否在数组内,本文将详细介绍这些方法,同时也会介绍其他一些数组操作函数。

  1. 使用 in_array() 函数

in_array() 函数可以判断一个值是否在数组中,其语法如下:

1

in_array($value$array$strict)

登录后复制

其中,$value 参数表示要查找的值,$array 参数表示要搜索的数组,$strict 参数表示数据类型是否严格匹配,可以省略,默认为 false。如果找到值,则返回 true,否则返回 false。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple""banana""orange");

 

if (in_array("apple"$fruits)) {

    echo "苹果在数组中存在!";

else {

    echo "苹果不在数组中存在!";

}

登录后复制

输出结果为:

1

苹果在数组中存在!

登录后复制
  1. 使用 array_search() 函数

array_search() 函数可以查找数组中指定的值,并返回对应的键名,如果找不到则返回 false。其语法如下:

1

array_search($value$array$strict)

登录后复制

其中,$value 参数表示要查找的值,$array 参数表示要搜索的数组,$strict 参数表示数据类型是否严格匹配,可以省略,默认为 false。

示例代码如下:

1

2

3

4

5

6

7

8

$fruits array("apple""banana""orange");

 

$key array_search("banana"$fruits);

if ($key !== false) {

    echo "香蕉在数组中的键名为:" $key;

else {

    echo "香蕉不在数组中存在!";

}

登录后复制

输出结果为:

1

香蕉在数组中的键名为:1

登录后复制
登录后复制

如果要查找某个值是否存在,可以像下面这样使用:

1

2

3

4

5

6

7

$fruits array("apple""banana""orange");

 

if (array_search("orange"$fruits) !== false) {

    echo "橘子在数组中存在!";

else {

    echo "橘子不在数组中存在!";

}

登录后复制

输出结果为:

1

橘子在数组中存在!

登录后复制
登录后复制
  1. 使用 in_array() 和 array_search() 同时判断

有些情况下,既需要知道某个值在不在数组中,又需要知道它的键名,这时可以结合 in_array() 和 array_search() 两个函数,同时进行判断。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple""banana""orange");

 

if (in_array("banana"$fruits) && ($key array_search("banana"$fruits)) !== false) {

    echo "香蕉在数组中的键名为:" $key;

else {

    echo "香蕉不在数组中存在!";

}

登录后复制

输出结果为:

1

香蕉在数组中的键名为:1

登录后复制
登录后复制
  1. 使用 array_key_exists() 函数

array_key_exists() 函数可以判断指定的键名是否存在于数组中,其语法如下:

1

array_key_exists($key$array)

登录后复制

其中,$key 参数表示要查找的键名,$array 参数表示要搜索的数组。如果找到键名,则返回 true,否则返回 false。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple" => 0, "banana" => 1, "orange" => 2);

 

if (array_key_exists("banana"$fruits)) {

    echo "香蕉在数组中存在!";

else {

    echo "香蕉不在数组中存在!";

}

登录后复制

输出结果为:

1

香蕉在数组中存在!

登录后复制
登录后复制
登录后复制
  1. 使用 isset() 函数

isset() 函数可以判断指定的键名是否存在于数组中,其语法如下:

1

isset($array[$key])

登录后复制

其中,$key 参数表示要查找的键名,$array 参数表示要搜索的数组。如果找到键名,则返回 true,否则返回 false。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple" => 0, "banana" => 1, "orange" => 2);

 

if (isset($fruits["orange"])) {

    echo "橘子在数组中存在!";

else {

    echo "橘子不在数组中存在!";

}

登录后复制

输出结果为:

1

橘子在数组中存在!

登录后复制
登录后复制

注意:使用 isset() 函数时要注意,如果键名对应的值为 null,也会返回 false,因此不能准确判断某个键名是否存在于数组中。

  1. 使用 array_diff() 函数

array_diff() 函数可以求出两个数组差集,即返回在第一个数组中但不在后面数组中的所有值。因此,如果将要查找的值作为第一个数组,将原数组作为第二个数组,查找结果为差集为空,则表示它在原数组中存在。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple""banana""orange");

 

if (count(array_diff(array("banana"), $fruits)) == 0) {

    echo "香蕉在数组中存在!";

else {

    echo "香蕉不在数组中存在!";

}

登录后复制

输出结果为:

1

香蕉在数组中存在!

登录后复制
登录后复制
登录后复制
  1. 使用 preg_grep() 函数

preg_grep() 函数可以使用正则表达式匹配数组元素,返回匹配的所有元素。因此,如果将要查找的值作为正则表达式,将原数组作为参数,查找结果为非空数组,则表示它在原数组中存在。

示例代码如下:

1

2

3

4

5

6

7

$fruits array("apple""banana""orange");

 

if (count(preg_grep("/banana/"$fruits)) > 0) {

    echo "香蕉在数组中存在!";

else {

    echo "香蕉不在数组中存在!";

}

登录后复制

输出结果为:

1

香蕉在数组中存在!

登录后复制
登录后复制
登录后复制

以上就是在 PHP 中判断某个数是否在数组内的各种方法,我们可以根据实际需求选择适合自己的方法进行操作。除此之外,还有许多其他的数组操作函数,例如 array_merge()、array_slice()、array_reverse() 等等,我们可以根据不同的需求选择不同的函数进行使用。

以上是php怎么判断某个数是否在数组内的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板