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
自单词&#34; Calle&#34;我总是在回报中,如果它的&gt; 6,$ i会自动地等于链条的长度并让我离开,因为我会在#34; Calle&#34; 30 433开始的时候就到了。我做过的其他ifs,其中一个控制它是否是一个空格来将它添加到新字符串$ direccion,另一个检查它是否是一个数字。如果它不是数字,并且它不是空格而且$ i&gt; 6,意味着我在B中,我想完成do / while。
答案 0 :(得分:0)
首先,你在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 ) )
但是,只有当你确定你的字符串是你所定义的时候。 我不确定,但希望它可以提供帮助。