在 php 中,有许多方法可以用来判断一个字符串是否在一个数组内。在实际编程中,这种需求非常常见。下面介绍几种常见的判断方式:
- in_array 函数
PHP 中有一个内置的函数叫做 in_array,其语法为:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
needle 参数是要查找的元素,haystack 参数是要搜索的数组。如果找到 needle 则返回 TRUE,否则返回 FALSE。strict 参数如果设置为 TRUE,in_array 函数会同时检查 needle 的类型和值是否相等。
下面是一个例子:
立即学习“PHP免费学习笔记(深入)”;
输出结果是: Found BMW!
- array_search 函数
PHP 中还有一个内置的函数叫做 array_search,其语法为:
mixed array_search ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
该函数和 in_array 函数类似,但是不同的是它返回该元素在数组中的下标。如果数组中不存在该元素,则返回 FALSE。下面是一个例子:
输出结果是: Found BMW at index 1
- 使用 in_array 和 array_search 时的注意事项
在使用 in_array 和 array_search 函数时,有几个需要注意的事项:
1)如果要检查一个字符串在数组中是否存在,需要保证数组中的元素都是字符串类型。否则,需要使用 strict 参数,将其设为 TRUE。
2)in_array 和 array_search 函数是区分大小写的,如果要忽略大小写,可以使用 array_map 函数将数组中的所有元素都转为小写或大写后再进行搜索。
3)如果要判断一个字符串是否不在一个数组内,可以使用 !in_array 或者 array_search === false。
总结:
判断一个字符串是否在数组内是 PHP 程序中的常见需求,在 PHP 中可以使用 in_array 和 array_search 函数进行快速的判断。在使用这两个函数时,需要注意参数的类型和大小写问题。











