在 PHP 中,array_filter() 函数可以用来过滤数组中的元素。它接收两个参数:第一个是待过滤的数组,第二个是一个回调函数,回调函数用于确定哪些元素应该保留下来。本文将介绍如何使用 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() 函数会遍历数组 $urls 中的每一个元素,并将每个元素传递给回调函数。回调函数检查元素中是否包含关键字 m66.net。
strpos() 函数:在回调函数中,我们使用了 strpos() 函数来查找字符串中是否包含 m66.net。如果 strpos() 返回 false,说明该字符串中不包含关键字,我们将其从结果中移除;否则,该字符串包含关键字,保留该元素。
输出:最后,我们用 print_r() 输出过滤后的数组。
执行上述代码后,输出的结果将是: