tar*_*eld 26 php arrays string contains
如何检查a是否$string
包含数组中表达的任何项?
$string = 'My nAmE is Tom.';
$array = array("name","tom");
if(contains($string,$array))
{
// do something to say it contains
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
zom*_*bat 80
I don't think there is a built-in function that will handle what you want. You could easily write a contains()
function however:
function contains($str, array $arr)
{
foreach($arr as $a) {
if (stripos($str,$a) !== false) return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
sbc*_*czk 21
那是你想要的吗?我希望代码编译:)
$string = 'My nAmE is Tom.';
$array = array("name","tom");
if(0 < count(array_intersect(array_map('strtolower', explode(' ', $string)), $array)))
{
//do sth
}
Run Code Online (Sandbox Code Playgroud)
小智 11
使用接受的答案:
$string = 'My nAmE is Tom.';
$array = array("name","tom");
if(0 < count(array_intersect(array_map('strtolower', explode(' ', $string)), $array)))
{
//do sth
}
Run Code Online (Sandbox Code Playgroud)
请注意,if语句可以更改为:
if(0 < count(array_intersect(explode(' ', strtolower($string)), $array)))
Run Code Online (Sandbox Code Playgroud)
因为没有必要使用array_map来应用于strtolower
每个元素.而是将它应用于初始字符串.
我们可以检查给定字符串中是否存在数组的任何元素。
$string = 'My nAmE is Tom.';
$array = array("name","tom");
if(str_replace($array, '', strtolower($string)) !== strtolower($string)) {
// If String contains an element from array
// Do Something
}
Run Code Online (Sandbox Code Playgroud)
像这样的事情会起作用:
$string = 'My nAmE is Tom.';
$array = array("name", "tom");
foreach ($array as $token) {
if (stristr($string, $token) !== FALSE) {
print "String contains: $token\n";
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
包含函数的另一个解决方法
function contains($string, $array, $caseSensitive = true)
{
$stripedString = $caseSensitive ? str_replace($array, '', $string) : str_ireplace($array, '', $string);
return strlen($stripedString) !== strlen($string);
}
Run Code Online (Sandbox Code Playgroud)
PS.至于我,我只是在没有功能的情况下使用它..
if (strlen(str_replace($array, '', $string)) !== strlen($string)) {
// do it
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42749 次 |
最近记录: |