ホームページ >バックエンド開発 >PHPの問題 >PHPで配列値をファジークエリする方法

PHPで配列値をファジークエリする方法

PHPz
PHPzオリジナル
2023-04-12 13:55:531092ブラウズ

PHP 開発では、配列内に特定のキーワードを含むデータを照合するために配列に対してファジー クエリを実行したい場合があります。では、どうすればそれを達成できるのでしょうか?一般的な方法をいくつか紹介します。

1. array_filter 関数を使用する

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

上記のコードは、array_filter 関数を使用してフィルター処理を行い、匿名関数を使用して各配列要素の文字列一致を実現します。

2. foreach ループによる実装

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

上記のコードは、ループを通じて配列要素の文字列一致を実装し、一致するものがあれば結果の配列に入れます。

3. preg_grep 関数を使用する

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

上記のコードは、一致に preg_grep 関数を使用します。まず、preg_quote 関数を使用してキーワードをエスケープし、正規表現で一致させ、最後に戻り値を返します。結果の配列。

上記の 3 つの方法はすべて配列に対するファジー クエリに適しており、実際のニーズに応じていずれかを選択できます。同時に、クエリ結果が配列キー値に対応するかどうかに注意する必要があり、追加の処理が必要になる場合があります。

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

上記はサンプルコードで、一致するキーワード「p」を検索した結果は「PHP」、「Python」となります。

概要

配列ファジー クエリは PHP で非常に一般的な操作であり、主に array_filter、preg_grep などのいくつかの一般的な関数に依存して実装されます。もちろん、foreach ループを使用しても実現できますが、実際のシナリオによっては、コード内で追加の判断と処理が必要になる場合があることに注意してください。この記事が読者のお役に立てば幸いです。

以上がPHPで配列値をファジークエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。