PHP 搜索字符串,分割成数组?
PHP Search string, split to array?
我需要在字符串中搜索以逗号分隔的用户名。必须考虑字符串可能为空、大写或小写,或者也可能在逗号前后包含空格。可能是:
$string = "Chris, Tom,Jeff,Roger"
$string = "Chris,Tom , Jeff ,Roger"
$string = ",,,,Chris,tom,Jeff,Roger,,,,"
etc...
说我需要查看 "Tom"
是否在 $string
中。我最好使用 explode
将字符串拆分成一个数组,修剪然后检查每个条目吗?或者有更好的方法吗?
有几种方法可以做到这一点。这非常准确:
$found = in_array('Tom', array_filter(explode(',', $string)));
不区分大小写:
$found = in_array('tom', array_filter(explode(',', strtolower($string))));
您可以手动查看。
public function splitNames() {
$string = ",,,,Chris,tom,Jeff,Roger,,,,";
$splited = explode(",", $string);
foreach ($splited as $name) {
if ($name == null || $name == "") {
continue;
} else {
$names[] = ucfirst(strtolower(trim($name)));
}
}
return $names;
}
将 preg_match
与 i
修饰符结合使用,您可以以不区分大小写的方式验证您的字符串是否包含您的数据:
function contains($value, $string) {
return preg_match('/(?<=[[:punct:]|[:space:]])(' . $value . ')(?=[[:punct:]|[:space:]])/i', $string, $match);
}
我需要在字符串中搜索以逗号分隔的用户名。必须考虑字符串可能为空、大写或小写,或者也可能在逗号前后包含空格。可能是:
$string = "Chris, Tom,Jeff,Roger"
$string = "Chris,Tom , Jeff ,Roger"
$string = ",,,,Chris,tom,Jeff,Roger,,,,"
etc...
说我需要查看 "Tom"
是否在 $string
中。我最好使用 explode
将字符串拆分成一个数组,修剪然后检查每个条目吗?或者有更好的方法吗?
有几种方法可以做到这一点。这非常准确:
$found = in_array('Tom', array_filter(explode(',', $string)));
不区分大小写:
$found = in_array('tom', array_filter(explode(',', strtolower($string))));
您可以手动查看。
public function splitNames() {
$string = ",,,,Chris,tom,Jeff,Roger,,,,";
$splited = explode(",", $string);
foreach ($splited as $name) {
if ($name == null || $name == "") {
continue;
} else {
$names[] = ucfirst(strtolower(trim($name)));
}
}
return $names;
}
将 preg_match
与 i
修饰符结合使用,您可以以不区分大小写的方式验证您的字符串是否包含您的数据:
function contains($value, $string) {
return preg_match('/(?<=[[:punct:]|[:space:]])(' . $value . ')(?=[[:punct:]|[:space:]])/i', $string, $match);
}