我試圖跳過CSV文件中的前幾行。在其餘的行中,第一列是一個序數-1,2,3等。但由於某種原因,使用is_numeric完全失敗。我認爲這可能是引號,但手冊中的測試數組已引用並正確輸出答案。PHP is_numeric不適用於數組值
開檢查$å文件後...
while (($row = fgetcsv($afile)) !== FALSE) {
// first three rows don't have numbers in first column
if (is_numeric($row[0]))
print "<tr><td>{$row[7]}</td></tr>";
else
print "not numeric: {$row[0]}<br/>";
}
一切都爲 「不是數字」!
當我print_r的陣列,還有報價在列,所以我試圖運行str_replace函數來剝去引號和is_numeric 仍然出來作爲虛假的所有的時間...
完全莫名其妙,希望有人能幫助我希望這只是一個愚蠢的問題,「在午夜編碼」 ...
[編輯]
好吧,我懷疑它的東西與數據,但我看不出什麼毛病。當我在BBEdit中「顯示隱形」時,我得到一個在之間的倒數問號,每個字符。請參閱:
所以..這是奇怪的。假設我會一直得到這些不可見的東西,直到我可以找出導出的數據。PHP可以做任何事情來清理數據嗎?也許是一個字符集問題?
[再次編輯]感謝martinstoeckli,我用mb_convert_string轉換了數據,is_numeric現在可以正確返回。
那麼你的數據是什麼樣子? – chovy
而不是'is_numeric'使用'preg_match',因爲fgetcsv讀取字符串值作爲字符串 – Poonam
Poonam,是的,似乎工作,但爲什麼*不*數字工作?它應該將帶有引號的數字看作數字,對嗎? – jendotm