PHP 在数组中查找值
在使用PHP数组时,程序员经常需要在从数据库导入数据时搜索特定的值。为了减轻工作负担,PHP开发人员已经引入了一些内置函数,帮助用户在给定的数组中搜索和定位特定的值。以下是用于在数组中搜索值的两个PHP函数:
本教程将简要介绍这两个函数的语法、返回值、参数和各种示例。
1. PHP array_search()函数
PHP array_search()是一个内置函数,广泛用于在给定的数组中搜索和定位特定的值。如果成功找到特定的值,它将返回其对应的键值。如果元素多次出现,则返回匹配值的键的第一个出现。
语法
array_search(value,array, strict_parameter)
参数
array_search()函数接受三个参数,其中两个参数是必需的,最后一个是可选的。该函数的参数如下:
- $value(必需): 该参数表示用户希望在给定数组中搜索的值。
- $array(必需): 该参数表示原始数组,用户希望在其中搜索元素。
- strict_parameter(可选) :这是一个可选参数,可以设置为TRUE或FALSE。它表示数组搜索的严格性。默认情况下,该参数设置为布尔值FALSE。
- 如果strict_parameter设置为TRUE,则函数在数组中查找相似的值,即字符串200不会被视为与整数200相同。因此,这两个值是不同的。
- 如果strict_parameter设置为布尔值FALSE,则不保留严格性,即字符串200将被视为与整数200相同。
返回值
array_search()函数返回传递的相应元素的键。
- 如果在数组中找不到搜索值,则返回布尔值False,
- 否则,如果值存在于数组中,则返回True。如果搜索值在数组中出现多次,则返回第一个匹配的键。
示例1:在下面的程序中,我们学习如何使用array_search()函数搜索数组值,其中strict_parameter设置为其默认值。
<?php
// PHP function to demonstrate the use of array_search()
function Search(search_value,array_name)
{
// using the array_search() function to find specific array value
return(array_search(search_value,array_name));
}
//defining the array
array_name = array("Reema", "Dilip", "Anirudh", "Aniket", "Rohit");search_value = "Dilip";
print_r (search_value ." is at position ");
//will return the position of search value in the array
print_r(Search(search_value, $array_name));
?>
输出
Dilip is at position 1
示例2:在下面的程序中,我们学习如何使用array_search()函数来搜索数组值,如果strict_parameter参数设置为FALSE。
<?php
// PHP function to demonstrate the use of array_search()
function Search(search_value,array)
{
//using array_search() function where strictness is set to false
return(array_search(search_value,array,false));
}
//defining the array with two occurrence of search value
array = array (415, 15, 11, 212, 212, 100, 100);search_value = "100";
print_r (search_value ." is at position ");
//will return the key of the first occurrence
print_r(Search(search_value, $array));
?>
输出
100 is at position 5
示例3:在下面的程序中,我们学习如何使用array_search()函数来搜索数组值,如果strict_parameter设置为TRUE。
<?php
// PHP function to illustrate the use of array_search()
function Search(search_value,array)
{
////using array_search() function where strcitness is set to True
return(array_search(search_value,array, true));
}
//defining the array with two occurrence of search value
array = array(415, 15, 11, 212, 212, 100, 100);search_value = "100";
print_r (search_value ." is at position ");
//will return the key of the first occurrence if it founds the exact match
//because we are looking for string and the array data is in integer
//array_search() function will return null
print_r(Search(search_value, $array));
?>
输出
100 is at position
2. PHP in_array() 函数
PHP in_array() 函数也是一个内置函数,用于判断给定数组中是否存在指定元素。该函数返回一个布尔值 TRUE,如果给定的值存在于数组中,如果找不到该值,则返回 FALSE。
语法
in_array ( value,array_name ,$mode )
参数
in_array()函数接受以下三个参数,其中两个是必需的,另一个是可选的:
- $search_value(必需): 此参数用于指定用户要在数组中搜索的元素或值。search_value参数可以容纳混合类型的值,即它可以接受字符串或整数类型或任何其他数据类型的值。如果用户使用字符串类型的值,则数组搜索将以区分大小写的方式实现。
- $array_name(必需): 此参数表示用户要执行搜索操作的数组。
- $mode(可选): 此可选参数接受布尔值,即True或False。它表示用户要执行搜索操作的模式。默认情况下,此参数设置为FALSE。
- 如果mode设置为TRUE,则函数将在数组中查找相似的值,即字符串200将不被视为与整数200相同。因此,这两个值是不同的。
- 如果mode设置为布尔值FALSE,则不保留严格性,即字符串200将被视为与整数200相同。
返回值
in_array()函数返回一个布尔值,即True或False。如果在给定的数组中找到搜索值,则返回布尔值True。否则,如果未找到该值,则返回FALSE。
示例1: 在下面的程序中,我们使用in_array()函数以非严格模式执行数组搜索操作。为此,我们将最后一个参数$mode设置为false,这是它的默认值。
<?php
marks = array(10, 615, 710, 7);search_value= "10";
//find the element 10 in the array
//by default the mmode parameter is set to false
if (in_array(search_value,marks))
{
//in_array() will return true and the strictness mode is set to false
echo "The element ". search_value. " exits in the array.";
}
else
{
echo "The element ".search_value. " does not exists in the array";
}
?>
输出
The element 10 exits in the array.
示例2:在下面的程序中,我们使用in_array()函数以严格模式执行数组搜索操作。 为此,我们将最后一个参数$ mode设置为True。
<?php
//defining the array
people = array("Reema", "Indranil", "Rahul", "Varun", 213);search_value="23";
if (in_array(search_value,people, TRUE))
{
echo "The element '". search_value. "' exits in the array. \n";
}
else
{
echo "The element '".search_value. "' does not exists in the array. \n";
}
search_value="Indranil";
if (in_array(search_value, people, TRUE))
{
echo "The element '".search_value. "' exits in the array. \n";
}
else
{
echo "The element '". search_value. "' does not exists in the array. \n";
}search_value="Reema";
if (in_array(search_value,people, TRUE))
{
echo "The element '". search_value. "' exits in the array. \n";
}
else
{
echo "The element '".search_value. "' does not exists in the array. \n";
}
?>
输出
The element '23' does not exist in the array.
The element 'Indranil' does not exists in the array.
The element 'Reema' does not exists in the array.