PHP 检查字符串的任何部分是否存在数组元素

标签 php

我知道如何查找您的字符串是否等于数组值:

$colors = array("blue","red","white");

$string = "white";

if (!in_array($string, $colors)) {
    echo 'not found';
}

...但是我如何找到字符串是否包含数组值的任何部分?
$colors = array("blue","red","white");

$string = "whitewash"; // I want this to be found in the array

if (!in_array($string, $colors)) {
    echo 'not found';
}

最佳答案

或者一次性:

if( preg_match("(".implode("|",array_map("preg_quote",$colors)).")",$string,$m)) {
    echo "Found ".$m[0]."!";
}

这也可以扩展为仅允许以数组中的项目开头的单词:
if( preg_match("(\b(?:".implode("|",array_map("preg_quote",$colors))."))",$string,$m)) {

或不区分大小写:
if( preg_match("(".implode("|",array_map("preg_quote",$colors)).")i",$string,$m)) {

仅开始的 CI:
if( preg_match("(\b(?:".implode("|",array_map("preg_quote",$colors))."))i",$string,$m)) {

或者任何真的;)

关于PHP 检查字符串的任何部分是否存在数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25229364/

相关文章:

PHP DOMDocument 用 div id 替换内容

php - 检查mysql中是否存在用户id

php - 我的 JavaScript 代码在 Firefox 中运行良好,但在 chrome 和 IE 中运行不正常

php - 我可以等待 location.href 加载页面吗?

php - 如何根据文件名将多个csv插入不同的表中?

php - 如何使用php动态创建mysql表?

php - SF3+Doctrine计算日期之间的价格

php - 未定义索引 PHP : Can't Find Form Values

php - 定期从服务器端调用函数?

php - 带有键的数组的 Twig for 循环