📌  相关文章
📜  php 检查某些字符串是否包含来自数组 - PHP (1)

📅  最后修改于: 2023-12-03 15:18:31.492000             🧑  作者: Mango

PHP 检查某些字符串是否包含来自数组

当需要检查某个字符串是否包含来自一个数组中的值时,PHP提供了多种解决方案。以下是其中三种方法的示例代码。

方法一:使用in_array函数

in_array()函数可以检查指定值是否存在于数组中。我们可以遍历要检查的字符串,并对每个字符串使用in_array()函数进行检查。

$stringsToCheck = array("hello", "world"); // 要检查的字符串数组
$stringsToMatch = array("he", "orl"); // 要匹配的字符串数组

foreach ($stringsToCheck as $string) {
    $found = false;
    foreach ($stringsToMatch as $match) {
        if (strpos($string, $match) !== false) {
            $found = true;
            break;
        }
    }
    if ($found) {
        echo "String \"$string\" contains match from array" . PHP_EOL;
    }
}

上述示例使用了strpos()函数来检查字符串是否包含匹配的子字符串,如果匹配则将$found变量设置为true并跳出内部循环。如果最终$found仍然是true,则表示该字符串中包含来自要匹配的字符串数组中的一个匹配项。

方法二:使用正则表达式

在PHP中,我们也可以使用正则表达式来检查字符串是否包含来自数组中的任何值。下面是一个示例,使用preg_match()函数,该函数用于将正则表达式与字符串进行匹配。

$stringsToCheck = array("hello", "world"); // 要检查的字符串数组
$stringsToMatch = array("he", "orl"); // 要匹配的字符串数组

foreach ($stringsToCheck as $string) {
    $matchFound = false;
    foreach ($stringsToMatch as $match) {
        if (preg_match("/$match/", $string)) {
            $matchFound = true;
            break;
        }
    }
    if ($matchFound) {
        echo "String \"$string\" contains match from array" . PHP_EOL;
    }
}

上述示例使用了preg_match()函数来将匹配的模式应用于要检查的字符串,如果模式与字符串匹配,则将$matchFound变量设置为true,并跳出循环。如果最终$matchFound仍然是true,则表示该字符串中包含来自要匹配的字符串数组中的一个匹配项。

方法三:使用array_filter函数

我们可以使用array_filter()来过滤一个数组,并返回只包含符合条件的元素的新数组。

$stringsToCheck = array("hello", "world"); // 要检查的字符串数组
$stringsToMatch = array("he", "orl"); // 要匹配的字符串数组

foreach ($stringsToCheck as $string) {
    $matches = array_filter($stringsToMatch, function ($match) use ($string) {
        return (strpos($string, $match) !== false);
    });
    if (count($matches) > 0) {
        echo "String \"$string\" contains match from array" . PHP_EOL;
    }
}

上述示例使用了一个匿名函数来过滤要匹配的字符串数组,该函数使用strpos()函数来检查每个字符串是否与要检查的字符串匹配。如果结果数组(即$matches)中有任何元素,则表示该字符串中包含来自要匹配的字符串数组中的一个匹配项。

无论您选择哪种方法,上述所有示例都可以让您检查一个字符串是否包含来自一个数组中的值。根据您的代码和数据,一种方法可能比另一种方法更适合。