簡體   English   中英

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_matchi修飾符一起使用,可以驗證字符串是否以不區分大小寫的方式包含數據:

function contains($value, $string) {
    return preg_match('/(?<=[[:punct:]|[:space:]])(' . $value . ')(?=[[:punct:]|[:space:]])/i', $string, $match);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM