gpt4 book ai didi

php - 将地址分解为数组

转载 作者:行者123 更新时间:2023-12-04 18:21:20 27 4
gpt4 key购买 nike

我有一个需要分解为数组的地址列表。

所以我开始考虑使用explode 将每一行分解成一个数组。在这样的地址上可以正常工作:

Adwell - Oxfordshire 51.68N 01.00W SU6999



但如果我有这样的地址:

Afan - Castell-nedd Phort Talbot (Neath Port Talbot) 51.63N 03.74W SS794938



这会导致问题。

我一直在尝试使用 preg_match 但无法使表达式起作用,因此我最终得到:

0 => Adwell 1 => Oxfordshire 2 => 51.68N 3 => 01.00W 4 => SU6999



第二个地址的输出应该是

0=> Afan 1=> Castell-nedd Phort Talbot (Neath Port Talbot) 2=> 51.63N 3=> 03.74W 4=> SS794938



有没有人看到用正则表达式实现这一目标的好方法?

最佳答案

<?php
// Solution.
function parseAddress($address)
{
$matches = NULL;
preg_match('/([^-]*) - ([^\d]*) (\d\d\.\d\dN) (\d\d\.\d\dW) (.*)/',
$address, $matches);
return array_slice($matches, 1);
}

// Test case 1.
$parsed = parseAddress('Adwell - Oxfordshire 51.68N 01.00W SU6999');
var_dump($parsed);

// Test case 2.
$parsed = parseAddress('Afan - Castell-nedd Phort Talbot (Neath Port Talbot) ' .
'51.63N 03.74W SS794938');
var_dump($parsed);
?>

输出:
array(5) {
[0]=>
string(6) "Adwell"
[1]=>
string(11) "Oxfordshire"
[2]=>
string(6) "51.68N"
[3]=>
string(6) "01.00W"
[4]=>
string(6) "SU6999"
}
array(5) {
[0]=>
string(4) "Afan"
[1]=>
string(45) "Castell-nedd Phort Talbot (Neath Port Talbot)"
[2]=>
string(6) "51.63N"
[3]=>
string(6) "03.74W"
[4]=>
string(8) "SS794938"
}

关于php - 将地址分解为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com