Does array element contain substring?
本问题已经有最佳答案,请猛点这里访问。
我想要一个检查数组项是否包含字符串的函数。像这样的:
1 | array(1 => 'Super-user', 'Root', 'Admin', 'Administrator', 'System', 'Website', 'Owner', 'Manager', 'Founder'); |
然后检查
我走了这么远:
1 2 3 4 5 6 7 8 | $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'; } } |
当我检查
这是可能的吗(以及如何做到的)?
循环遍历
1 2 3 4 5 6 7 8 | function is_forbidden($forbiddennames, $stringtocheck) { foreach ($forbiddennames as $name) { if (stripos($stringtocheck, $name) !== FALSE) { return true; } } } |
使用方法如下:
1 2 3 4 5 | if(is_forbidden($forbiddennames, $stringtocheck)) { echo"This is a forbidden username."; } else { echo"True"; } |
演示!
1 2 3 4 5 6 7 | foreach ($forbiddennames as $forbiddenname) { $nametocheck = strtolower($stringtocheck); if(strpos($stringtocheck, $forbiddenname) !== false) { echo"This is a forbidden username."; break; } } |
您需要phps"strpos"函数。循环遍历每个数组元素,然后根据"strpos"php strpos引用检查每个元素
1 2 3 4 5 6 7 | foreach($forbiddennames as $fn){ if(strpos($stringtocheck,$fn)){ //found it! }else{ //not found! } } |
使用数组映射、foreach或其他方法并不重要。可能的解决方案:
1 2 3 4 5 6 7 8 9 10 11 12 13 |