Php If with || not working


    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 ) ) 

但前提是您确定您的字符串与您定义的字符串完全相同。我不确定,但希望它能有所帮助。

最新更新