do {
if ($dir[$i] == " " || is_numeric($dir[$i])
{
$direccion=$direccion.$dir[$i];
}
elseif ($i>6)
{
$i=strlen($dir)
}
}
while ($i <= count($dir))
$dir是我用来获取谷歌地址的变量,但问题是它带有邮政编码和城市。问题是我只需要街道和号码。
在第一次运行中$dir = "Calle 30 433B29938 LaPlataBuenosAiresArgentina"
我只需要从那 30 433
由于单词"Calle"总是在返回中,我做了一个if,如果它>6,$i将自动等于链条的长度并将我踢出while,因为我将在"Calle"中,并且当30 433开始时。我制作的其他 if,其中一个控制它是否是一个空格以将其添加到新字符串$direccion,另一个检查它是否是一个数字。如果它不是一个数字,如果它不是一个空格,$i> 6,则意味着我在 B 中,我想完成 do/while。
$direccion的结果应为 = 30 433。但是我在第 3 行收到一个错误,告诉我 {
在 if 条件结束时忘记)
的第一件事
if ($dir[$i] == " " || is_numeric($dir[$i]))
其次,如果你想从字符串中获取数字,你可以使用
preg_match_all('!d+!', $str, $matches);
就像我使用此代码一样
$str = 'Calle 30 433B29938 LaPlataBuenosAiresArgentina ';
preg_match_all('!d+!', $str, $matches);
输出将是
Array ( [0] => Array ( [0] => 30 [1] => 433 [2] => 29938 ) )
但前提是您确定您的字符串与您定义的字符串完全相同。我不确定,但希望它能有所帮助。