2013-11-25 65 views
1

一个文本文件,如果我有一个文本文件:爆炸用逗号和换行符

Ramon,19,Libra 
Renata,25,Aries 
Roxy,52,Leo 

如果我要创建一个数组:

print_r(explode(",", $str)); 

如何解释新行?

+0

文件()读取整个文件到一个数组。 – 2013-11-25 22:38:13

+0

@Dagon但它怎么知道如何将它分解成元素 –

+0

它在行分裂 – 2013-11-25 22:45:45

回答

3

取决于你想要什么,但尽量file()

$lines = file('/path/to/file.txt'); 
foreach($lines as $line) { 
    $data[] = explode(',', $line); 
} 
print_r($data); 
4

另一个好办法就是使用str_getcsv

foreach(file('/path/to/file.txt') as $line) { 
    $data[] = str_getcsv($line); 
} 

var_dump($data); 

,并返回:

Array 
(
    [0] => Array 
     (
      [0] => Ramon 
      [1] => 19 
      [2] => Libra 
     ) 

    [1] => Array 
     (
      [0] => Renata 
      [1] => 25 
      [2] => Aries 
     ) 

    [2] => Array 
     (
      [0] => Roxy 
      [1] => 52 
      [2] => Leo 
     ) 

) 

或者你可以使用fgetcsv功能

+0

但如何将子串填充到数组中? +1 btw –

+0

这正是你需要的,对吧?谢谢+1 – mcuadros

+0

是的,但我想知道它如何知道在哪里拆分字符串?对于投票无后顾之忧,我总是投票做出努力来帮助嘿 –

2

只是另一种方式,它可以做

$filestring = file_get_contents('...path to file...'); 
$lines = explode(PHP_EOL,$filestring); 
foreach($lines as $line) { 
    $data[] = explode(',', $line); 
} 
print_r($data); 
+0

是的,我看到你在说什么+1和ty –

+0

你应该使用$ data = array_merge($ data,explode(',',$ line))来获得一个数组。 – crafter