我需要将街道地址的部分捕获到php变量中。我使用preg_match_all的大部分方式,但我可以使用正则表达式部分的一些帮助:
$address[0] = '2033 2nd Avenue, Seattle, WA 98121';
preg_match_all("/(\w*)+/", $address[0], $first_address);
// get rid of the empty bits
$first_address = array_filter(array_map('array_filter',$first_address));
print_r($first_address)
// results
Array
(
[0] => Array
(
[0] => 2033
[2] => 2nd
[4] => Avenue
[7] => Seattle
[10] => WA
[12] => 98121
)
)
我可以使用像$first_address[0][4]
这样的语法来访问这些部分,但是我不能依赖表示地址部分相同的数组编号(有时会省略逗号)。
如果我能够生成一个命名部件的关联数组,那么理想的是什么:
Array
(
[0] => Array
(
[hsn] => 2033
[street] => 2nd
[suffix] => Avenue
[city] => Seattle
[state] => WA
[zip] => 98121
)
)
有没有人有更好的方法呢?