当前位置: 首页> 最新文章列表> 使用 array_filter() 过滤出包含特定关键字的字符串

使用 array_filter() 过滤出包含特定关键字的字符串

M66 2025-06-04

在 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 的字符串。

使用 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"
];

// 定义过滤条件:只保留包含 "m66.net" 的 URL
$filteredUrls = array_filter($urls, function($url) {
    return strpos($url, "m66.net") !== false;
});

// 输出过滤后的结果
print_r($filteredUrls);
?>

代码解析

  1. array_filter() 函数array_filter() 函数会遍历数组 $urls 中的每一个元素,并将每个元素传递给回调函数。回调函数检查元素中是否包含关键字 m66.net

  2. strpos() 函数:在回调函数中,我们使用了 strpos() 函数来查找字符串中是否包含 m66.net。如果 strpos() 返回 false,说明该字符串中不包含关键字,我们将其从结果中移除;否则,该字符串包含关键字,保留该元素。

  3. 输出:最后,我们用 print_r() 输出过滤后的数组。

结果

执行上述代码后,输出的结果将是: