PHP開発では、特に特定のキーワードを含む文字列要素を見つけたい場合は、アレイ内の要素をフィルタリングする必要があることがよくあります。この時点で、 Striposとarray_filterの組み合わせは非常に実用的なソリューションです。
この記事では、この関数を実装するためにarray_filterを使用してStriposを使用する方法を理解するために、段階的に段階的に説明します。
StripOS()は、PHPの文字列関数であり、文字列が最初に別の文字列に表示される場所(ケースは鈍感)です。見つかった場合(0から始まる)場所を返し、見つけられない場合はfalseを返します。
構文は次のとおりです。
stripos(string $haystack, string $needle): int|false
例えば:
stripos("Hello World", "world"); // 戻る 6
array_filter()は、コールバック関数によって配列をフィルタリングするために使用されるPHPの関数です。配列内の各要素を反復し、コールバック関数の返品値と一致しない要素を除外します。
構文は次のとおりです。
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
実用的な例を見てみましょう。複数の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実践的スキルに興味がある場合は、プログラミングのヒントを増やしてください!