Home  >  Article  >  Backend Development  >  How to determine whether a string exists in an array in php

How to determine whether a string exists in an array in php

PHPz
PHPzOriginal
2023-04-20 09:10:53661browse

When using arrays in PHP, it is a common requirement to check whether an element exists in the array. When an element in an array is an integer or floating point number, you can use the in_array() function to check whether the element is contained in the array. However, when it comes to checking whether the array contains a string, the function doesn't work properly.

So, how should we check whether a PHP array contains a string?

Method 1: Use the in_array() function to determine

$fruits = array("apple", "banana", "orange");
if (in_array("apple", $fruits)) {
    echo "苹果在数组中";
} else {
    echo "苹果不在数组中";
}

In the above code, the first parameter of the in_array() function is the element to be found, and the second parameter is the array to be searched. . The function returns true if the element being found is in the array; otherwise it returns false.

However, if what you are looking for is a string, the in_array() function will compare the string as the entire element instead of comparing a certain part of the string. This means that the in_array() function will still return false if the array contains elements that are part of the string you are looking for. Therefore, the in_array() function cannot accurately check whether a PHP array contains a string.

Method 2: Use the array_search() function to determine

$fruits = array("apple", "banana", "orange");
$key = array_search("apple", $fruits);
if ($key !== false) {
    echo "苹果在数组中,键名为:" . $key;
} else {
    echo "苹果不在数组中";
}

The array_search() function is similar to the in_array() function and is used to find the specified value in the array. The difference is that the array_search() function returns the key name of the element in the array instead of true/false. Returns false if the element being found is not in the array.

When using the array_search() function, please note that this function is strict and case-sensitive. That is, if you search for a lowercase string in an array where the strings are all uppercase, the array_search() function will return false even if they are identical.

Method 3: Use the in_array() and array_map() functions to determine the joint use

function array_value_exists($needle, $haystack) {
    return in_array($needle, array_map('strtolower', $haystack));
}

This method uses the in_array() and array_map() functions jointly to determine all the strings in the array Convert to lowercase and search the converted array for the specified string. So whether the string is uppercase or lowercase, it can be found in the array.

Conclusion

In PHP, when using an array, you need to choose different methods to check whether the array contains a string according to the actual situation. If the string that needs to be matched is entered by the user, you should consider whether you need to use the third method to avoid problems caused by capitalization.

The above is the detailed content of How to determine whether a string exists in an array in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn