PHPでは、 array_filter()関数を使用して、配列内の要素をフィルタリングできます。 2つのパラメーターが受信されます。1つ目はフィルタリングする配列で、2つ目はコールバック関数であり、これはどの要素を保持する必要があるかを決定するために使用されます。この記事では、array_filter()を使用して、配列内の特定のキーワードを含む文字列をフィルタリングする方法について説明します。
複数の文字列の配列があり、特定のキーワードを含む文字列をフィルタリングする必要があるとします。
たとえば、次の配列があるとします。
<?php
$urls = [
"https://m66.net/products/item1",
"https://m66.net/products/item2",
"https://example.com/products/item3",
"https://m66.net/about",
"https://m66.net/contact"
];
?>
array_filter()関数を介してm66.netを含むすべての文字列をフィルタリングします。
これを行うことができます:
<?php
$urls = [
"https://m66.net/products/item1",
"https://m66.net/products/item2",
"https://example.com/products/item3",
"https://m66.net/about",
"https://m66.net/contact"
];
// フィルタリング条件を定義します:包含のみを続けます "m66.net" の URL
$filteredUrls = array_filter($urls, function($url) {
return strpos($url, "m66.net") !== false;
});
// 输出过滤后の结果
print_r($filteredUrls);
?>
array_filter()関数: array_filter()関数は、array $ urlの各要素を繰り返し、各要素をコールバック関数に渡します。コールバック関数は、要素にキーワードm66.netが含まれているかどうかを確認します。
strpos()関数:コールバック関数では、 strpos()関数を使用して、 m66.netが文字列に含まれているかどうかを調べます。 strpos()がfalseを返す場合、文字列にはキーワードが含まれていないことを意味し、結果から削除します。それ以外の場合、文字列にはキーワードが含まれ、要素を保持します。
出力:最後に、 print_r()を使用して、フィルタリングされた配列を出力します。
上記のコードを実行した後、出力は次のとおりです。