Php如果有||不工作

时间:2015-12-17 02:49:06

标签: php if-statement

    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。

$ direccion的结果应该是= 30 433.但我在第3行得到一个错误,告诉我{{

1 个答案:

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

但是,只有当你确定你的字符串是你所定义的时候。 我不确定,但希望它可以提供帮助。