一千萬個為什麽

搜索

PHP找到第一個出現的字符串

我有一系列數據,如下所示,我一直在努力弄清楚如何分割它,以便我可以有效地使用它。

"United States FirstName: Mike LastName: Doe City: Chicago"

我需要將字符串拆分為子字符串,列表可能並不總是以相同的順序。

例如,它可能會有如下變化:

"United States City: Chicago FirstName: Mike LastName: Doe"
"CanadaFirstName: Mike City: Chicago LastName: Doe"

我需要找到“美國”之後首先出現的參數。它可以是'City:','FirstName:'或'LastName:'。而且,我還需要知道第一個參數的起始位置。

提前致謝!

最佳答案

我認為最簡潔,最直接的方法(雖然性感的正則表達式很誘人)是將你的參數放在一個數組中並通過它進行預測。

$params = array(
    'FirstName:',
    'LastName:',
    'City:',
);

$first = null; # First parameter
$first_pos = null; # First parameter position

foreach($params as $var)
{
    $pos = strpos($string, $var);
    if($pos < $first_pos || null === $first_pos)
    {
        $first = $var;
        $first_pos = $pos;
    }
}

If you change your params, just change the array.

轉載註明原文: PHP找到第一個出現的字符串