[英]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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.