2013-03-29 153 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