現在の位置: ホーム> 最新記事一覧> Stripos + array_filterを使用して、指定された単語を含む配列要素をフィルタリングします

Stripos + array_filterを使用して、指定された単語を含む配列要素をフィルタリングします

M66 2025-05-31

PHP開発では、特に特定のキーワードを含む文字列要素を見つけたい場合は、アレイ内の要素をフィルタリングする必要があることがよくあります。この時点で、 Striposarray_filterの組み合わせは非常に実用的なソリューションです。

この記事では、この関数を実装するためにarray_filterを使用してStriposを使用する方法を理解するために、段階的に段階的に説明します。

ストリップとは何ですか?

StripOS()は、PHPの文字列関数であり、文字列が最初に別の文字列に表示される場所(ケースは鈍感)です。見つかった場合(0から始まる)場所を返し、見つけられない場合はfalseを返します。

構文は次のとおりです。

 stripos(string $haystack, string $needle): int|false

例えば:

 stripos("Hello World", "world"); // 戻る 6

array_filterとは何ですか?

array_filter()は、コールバック関数によって配列をフィルタリングするために使用されるPHPの関数です。配列内の各要素を反復し、コールバック関数返品値と一致しない要素を除外します。

構文は次のとおりです。

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Stripos + array_filterの組み合わせ

実用的な例を見てみましょう。複数のURLを含む配列があり、特定のキーワードを含むすべての要素(「ログイン」などのすべての要素を除外したいと思います。

サンプルコード:

 <?php

$urls = [
    "https://m66.net/home",
    "https://m66.net/user/login",
    "https://m66.net/about",
    "https://m66.net/admin/login",
    "https://m66.net/contact"
];

$keyword = "login";

$filtered = array_filter($urls, function($url) use ($keyword) {
    return stripos($url, $keyword) !== false;
});

print_r($filtered);

出力結果:

 Array
(
    [1] => https://m66.net/user/login
    [3] => https://m66.net/admin/login
)

ご覧のとおり、「ログイン」を含むURLのみが保存されます。

柔軟な拡張:複数のキーワードをサポートします

複数のキーワードをサポートする場合は、コールバック機能をわずかに変更できます。

 <?php

$keywords = ["login", "admin"];
$filtered = array_filter($urls, function($url) use ($keywords) {
    foreach ($keywords as $word) {
        if (stripos($url, $word) !== false) {
            return true;
        }
    }
    return false;
});

print_r($filtered);

これにより、キーワードを含むURLが柔軟で強力に戻ります。

結論

array_filterを使用してStripoSを使用することは、文字列配列でキーワードマッチングを処理するためのシンプルで効率的な方法です。簡潔なコードと明確なロジックがあるだけでなく、ログ分析、URLルーティングマッチング、コンテンツフィルタリングなど、さまざまな実用的なシナリオにも適しています。

再利用性と保守性を向上させるためのニーズに応じて、このロジックをさらに機能にカプセル化できます。

このタイプのPHP実践的スキルに興味がある場合は、プログラミングのヒントを増やしてください!