2013-03-29 121 views
0

我从来没有擅长使用循环。我有以下问题:PHP中foreach循环中的变量

当我执行下面的代码时,出现此错误消息:"Parse error: syntax error, unexpected T_VARIABLE in XXXXXXXXX on line 8"。我只是想给数组中的每个元素一个“评级”,数值有多高。

<? 
    $input = array(12413535, 13452465246, -13451, 8); 
    $input_size = count($input); 
    $var_rating = array(); 
    foreach ($input as $value) { 
     $var_rating[$value] = 0; 
     foreach ($input as $test) { 
      if ($value > $test) { 
       $var_rating[$value] = $var_rating[$value] + 1; 
      } 
      else {} 
     } 
    } 

    var_dump($var_rating); 
?> 

对不起,我感到困惑。我编辑了我的问题并添加了完整的代码。

+4

什么是第8行? – j08691

+0

这是intersting,我得到* PHP解析错误:语法错误,意外的'。'在XXXXXXXXX第1行*。看起来你的代码与你运行的错误消息没有太多共同之处。 – Oswald

+1

@Oswald:你也复制了点吗? – 2013-03-29 20:40:34

回答

2

它会出现罪魁祸首,您的代码不工作是一个复制隐藏隐藏的字符在第8行,就在$test变量之前。删除'空格'和>标志,然后重新输入这两个修补程序修复您的问题。

<?php 
    $input = array(12413535, 13452465246, -13451, 8); 
    $input_size = count($input); 
    $var_rating = array(); 
    foreach ($input as $value) { 
     $var_rating[$value] = 0; 
     foreach ($input as $test) { 
      if ($value > $test) { 
        //^right here there is a hidden character, remove it and the code works fine 
       $var_rating[$value] = $var_rating[$value] + 1; 
      } 
      else {} 
     } 
    } 

    var_dump($var_rating); 
?> 
+0

非常感谢你!你救了我。顺便说一下..我能做些什么来避免在我的代码中存在这些隐藏的字符? –

+0

@JanBayram首先,如果这解决了您的问题,请考虑接受它,方法是单击向下箭头下方的复选标记。其次,使用可以突出显示这些事物的IDE或代码编辑器。我用Notepad ++来找到这个,因为当我选择这一行时,它列出了26个字符,当应该有25个字符时。我就是这么想的。 – Daedalus

+0

嗯,我在我的Mac上使用Coda 2。而且我怎么输入这些字符? –

1

你有>$test之间的非打破空间,而不是在第8行通常的空间。 把它换成通常的空间字符,它会很好。 使用先进的文本编辑器一样PsPad,它提供了一种可能性,查看非打印字符,而不是记事本:)

1

这仅仅是为了更好地展示这一错误的原因,我用Frhed

存在隐患Â字符:)

enter image description here