Home >Backend Development >PHP Problem >How to fuzzy query array values ​​in php

How to fuzzy query array values ​​in php

PHPz
PHPzOriginal
2023-04-12 13:55:531091browse

In PHP development, sometimes we want to perform fuzzy queries on arrays to match data that contains a certain keyword in the array. So how to achieve it? Here are some common methods.

1. Use the array_filter function

function searchArray($array, $keyword){ 
    return array_filter($array, function($value) use ($keyword){ 
        return stripos($value, $keyword) !== false; 
    }); 
}

The above code uses the array_filter function to filter, and uses an anonymous function to achieve string matching for each array element.

2. Implementation through foreach loop

function searchArray($array, $keyword){ 
    $result = array(); 
    foreach ($array as $value) { 
        if (stripos($value, $keyword) !== false) { 
            $result[] = $value; 
        } 
    } 
    return $result; 
}

The above code implements string matching of array elements through looping, and if there is a match, it is put into the result array.

3. Use the preg_grep function

function searchArray($array, $keyword){ 
    return preg_grep('/' . preg_quote($keyword, '/') . '/i', $array); 
}

The above code uses the preg_grep function for matching. First, use the preg_quote function to escape the keywords, match them in the regular expression, and finally return the result array.

The above three methods are all suitable for fuzzy query on arrays, and we can choose one of them according to actual needs. At the same time, you need to pay attention to whether the query results correspond to the array key values, which may require additional processing.

$array = array(0 => 'PHP', 1 => 'JavaScript', 2 => 'Java', 3 => 'C#', 4 => 'Python'); 
$keyword = 'p'; 
$result = searchArray($array, $keyword); 
foreach ($result as $value) { 
    echo $value . ' '; 
}

The above is a sample code, and the results of searching for the matching keyword 'p' are 'PHP', 'Python'.

Summary

Array fuzzy query is a very common operation in PHP, which is mainly implemented by relying on some common functions such as array_filter, preg_grep, etc. Of course, this can also be achieved using a foreach loop. It should be noted that depending on the actual scenario, additional judgment and processing may be required in the code. Hope this article is helpful to readers.

The above is the detailed content of How to fuzzy query array values ​​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