Home  >  Article  >  Backend Development  >  How to find if a specified value exists in an array without case sensitivity using in_array function in PHP

How to find if a specified value exists in an array without case sensitivity using in_array function in PHP

WBOY
WBOYOriginal
2023-06-26 11:49:451356browse

In PHP, we often need to find whether a specified value exists in an array. For this purpose, PHP provides a very convenient function-in_array(), which can achieve this function. But sometimes we don't want to be case-sensitive when looking up values, so how to use the in_array() function to achieve case-insensitive lookup? This article details how to resolve this issue.

1. Basic usage of in_array() function

The usage of in_array() function is very simple. It contains two parameters: the value to be found and the array to be found. The function returns a Boolean value indicating whether the value to be found exists in the array. The following is a basic usage example of the in_array() function:

<?php
$fruits = array("apple", "banana", "orange", "pear");
if (in_array("banana", $fruits)) {
    echo "Found banana in the array";
} else {
    echo "Did not find banana in the array";
}
?>

In the above example, we define an array $fruits containing four elements and find whether "banana" exists in the array. Since "banana" does exist in the array, the in_array() function returns true and the code outputs "Found banana in the array".

2. Case-insensitive in_array() function implementation

The in_array() function is case-sensitive by default, that is, it treats uppercase letters and lowercase letters as different character of. But sometimes, we may want to be case-insensitive when searching, so what should we do? At this time we can customize a function to implement this function. The following is an example of a case-insensitive in_array() function:

<?php
function in_array_ci($needle, $haystack) {
    return in_array(strtolower($needle), array_map('strtolower', $haystack));
}

$fruits = array("Apple", "Banana", "Orange", "Pear");
if (in_array_ci("banana", $fruits)) {
    echo "Found banana in the array";
} else {
    echo "Did not find banana in the array";
}
?>

In the above example, we define a function named in_array_ci(), which has two parameters: the value to be found and The array to search for. This function first converts the value to be found into lowercase letters through the PHP built-in function strtolower(), and then converts all elements in the array into lowercase letters through the array_map() function. Then, the in_array() function can call this converted array to search, thereby completing a case-insensitive search operation.

It should be noted that because our custom in_array_ci() function calls the strtolower() and array_map() functions, it may be slightly inferior to the in_array() function in terms of performance. If you need to perform large-scale case-insensitive searches, it is recommended to avoid using custom functions and instead use other more efficient methods.

3. Encapsulate it into a class for use

In order to more conveniently use the case-insensitive in_array() function, we can also encapsulate it into a class to facilitate use in different projects reused. The following is a simple example:

<?php
class ArraySearch {
    public static function inArrayCi($needle, $haystack) {
        return in_array(strtolower($needle), array_map('strtolower', $haystack));
    }
}

$fruits = array("apple", "banana", "orange", "pear");
if (ArraySearch::inArrayCi("BaNaNa", $fruits)) {
    echo "Found banana in the array";
} else {
    echo "Did not find banana in the array";
}
?>

In the above example, we define a class named ArraySearch, which has an inArrayCi() method for implementing case-insensitive search operations. This method is exactly the same as the previous custom function implementation principle, except that now as a class method, it is easier to be called by other codes in multiple projects. When using it, you only need to call it through the class name and method name.

Summary

The in_array() function in PHP is a very convenient array search function, which can easily realize the function of finding whether a value exists in an array. But in some cases, we want to be case-insensitive when searching. In this case, we can implement this function by customizing a function, or encapsulate it into a class. This allows you to use this function more flexibly and requires attention to performance issues. I hope this article can be helpful to readers who are learning PHP.

The above is the detailed content of How to find if a specified value exists in an array without case sensitivity using in_array function 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