2014-07-18 58 views
0

以下代碼:陣列不能返回正確

$names = file_get_contents('names.txt'); 
var_dump($names); 

是的var_dump返回:

array (size=1) 
    0 => string 'asd 
dwqd 
asfa 
fewfw' (length=22) 

同時,這將返回正確的方法:

$test = array('tete','asdasd','yryr'); 
var_dump($test); 

結果:

array (size=3) 
    0 => string 'tete' (length=4) 
    1 => string 'asdasd' (length=6) 
    2 => string 'yryr' (length=4) 

因此,當我嘗試從文件中獲取名稱並將它們組成一個數組時,代碼塊會返回錯誤的格式數組。 names.txt建立如下:

asd 
dwqd 
asfa 
fewfw 
+1

呃...'$名稱= array_map( '微調',文件( 「names.txt中」));',也許? –

回答

0

你的問題是你沒有行分成數組,它只是讀取整個文件作爲文本塊。

使用file()FILE_IGNORE_NEW_LINES標誌。該標誌表示Do not add newline at the end of each array element,將您的多行變成一個數組的單行。

嘗試:

$names = file('names.txt', FILE_IGNORE_NEW_LINES); 
var_dump($names); 
+0

非常感謝。我知道我沒有正確地分解它,但不知道這樣做的好方法。再次,謝謝:) – TorrBallen

0

你只是打印從文本文件中正常的字符串。你需要爆炸陣列。

使用,

$array = explode(" ",$names); 
var_dump($array); 
+0

這不起作用:1.值不是由空格而是由換行符分隔的2.即使它有效(文檔沒有說,但它是_possible_空格也會拆分新行 - 不是對mkae的安全假設,儘管),可以在文件中有一行中包含一個不應該分割的空格。 – vlaz

+0

是的。你是對的.. –

0

使用file()

$names = trim(file('names.txt')); 
var_dump($names);