2014-07-18 139 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);