数组元素是否包含子字符串?

Isa*_*iah 12 php arrays string contains

我想要一个函数来检查数组的项是否包含字符串.因此:

array(1 => 'Super-user', 'Root', 'Admin', 'Administrator', 'System', 'Website', 'Owner', 'Manager', 'Founder');
Run Code Online (Sandbox Code Playgroud)

然后检查admin12应该返回true,因为admin12(admin)的一部分也是数组的一部分.

我走到这一步:

$forbiddennames= array(1 => 'Super-user', 'Root', 'Admin', 'Administrator', 'System', 'Website', 'Owner', 'Manager', 'Founder');    

if(in_array( strtolower($stringtocheck), array_map('strtolower', $forbiddennames))){
        echo '"This is a forbidden username."';
    } else {
        echo 'true';
    }
}
Run Code Online (Sandbox Code Playgroud)

只有这只回声"这是一个禁止的用户名".当我检查admin.我希望它也能在检查时回显admin12.

这可能(以及如何)?

Ama*_*ali 6

循环遍历$forbiddennames数组并用于stripos检查给定的输入字符串是否与数组中的任何项匹配:

function is_forbidden($forbiddennames, $stringtocheck) 
{
    foreach ($forbiddennames as $name) {
        if (stripos($stringtocheck, $name) !== FALSE) {
            return true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并使用如下:

if(is_forbidden($forbiddennames, $stringtocheck)) {
    echo "This is a forbidden username.";
} else {
    echo "True";
}
Run Code Online (Sandbox Code Playgroud)

演示!