Php检查数组中的第一个第二个第三个字符

Php检查数组中的第一个第二个第三个字符,php,arrays,preg-match,Php,Arrays,Preg Match,我有一个邮政编码数组: $firstPostcode = array( 'se1', 'ec2a', 'se16', ); 我需要根据上面的数组验证用户英国邮政编码的前4个字符 我的问题是我需要一次循环一个字符。有些输入可能是4个字符或3个空格 我试过preg match和in array,但在谷歌搜索了几个小时后还是解决不了 谢谢你的建议 我遇到的问题是,它与整个数组的匹配不是以4个字符开头的您应该能够与单个regexp匹配: $firstPostcode = arr

我有一个邮政编码数组:

$firstPostcode = array(
    'se1',
    'ec2a',
    'se16',
);
我需要根据上面的数组验证用户英国邮政编码的前4个字符

我的问题是我需要一次循环一个字符。有些输入可能是4个字符或3个空格

我试过preg match和in array,但在谷歌搜索了几个小时后还是解决不了

谢谢你的建议


我遇到的问题是,它与整个数组的匹配不是以4个字符开头的

您应该能够与单个regexp匹配:

$firstPostcode = array(
    'se1',
    'ec2a',
    'se16',
);
$rx = '!^\s*('.implode('|', $firstPostcode).')!i';

if (preg_match($rx, $input)){
    # postcode matches!
}
创建的regexp如下所示:

!^\s*(se1 |ec2a|se16)!i

这与字符串开头的一个前缀匹配(首先跳过任何空格),不区分大小写。

您应该能够与单个regexp匹配:

$firstPostcode = array(
    'se1',
    'ec2a',
    'se16',
);
$rx = '!^\s*('.implode('|', $firstPostcode).')!i';

if (preg_match($rx, $input)){
    # postcode matches!
}
创建的regexp如下所示:

!^\s*(se1 |ec2a|se16)!i

这与字符串开头的一个前缀匹配(首先跳过任何空格),不区分大小写。

您能给出一些输入示例吗?还有什么问题吗?请将您尝试过的代码发布。您能为我们提供您正在开发的
preg\u match
代码吗。。。它似乎适合你的需要,你有什么问题吗?你能给出一些例子吗?还有什么问题吗?请将您尝试过的代码发布。您能为我们提供您正在开发的
preg\u match
代码吗。。。看起来它会适合你的需要,你有什么问题吗?