如何从文件中读取多行并将其拆分为php中的数组

时间:2014-08-03 09:45:24

标签: php

我有一个包含以下内容的文件:

ali 123456
vali 154667

我想读取这个文件并拆分成这样的数组:

$array[0][0]=ali 
$array[0][1]=123456
$array[1][0]=vali
$array[1][1]=154667 

我搜索了这个并看到了w3schools文件,但我无法阅读我的想法! 请告诉我我该怎么做!

最好的问候,Minallah Tofig

3 个答案:

答案 0 :(得分:3)

您可以使用php函数文件()将文件逐行读入数组。然后你必须循环它并通过空白区域爆炸()。

$array = file('file.txt.');
foreach($array as $key => $line) {
    $array[$key] = explode(" ", $line);
}

http://ch2.php.net/manual/en/function.file.php

http://ch2.php.net/manual/en/function.explode.php

答案 1 :(得分:1)

$myArray = array();

打开文件:

$file = fopen("myfile.txt", "r");

逐行迭代文件

while (!feof($file) ) {
$line = fgets($file);
$myArray[] = explode(' ', $line);
}

关闭文件

fclose($file);

// $ myArray包含您的结果

答案 2 :(得分:0)

首先,this question解释了如何在PHP中逐行读取文件。它的顶部和底部是:

$handle = fopen("inputfile.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // process the line read.
    }
} else {
    // error opening the file.
}  
fclose($handle);

现在,在你的情况下,你已经有了一条结构化的路线。即。

<name><space><value>

我强烈反对使用多维数组。相反,请寻求基于OOP的解决方案。首先,定义一个类。

class Person {
    protected $name;
    protected $code;

    function __construct($line) {
        // Split and load.
    }
}

然后你可以创建一个Person个对象的数组。

$people = array();

然后遍历每一行并创建一个Person对象。

while(($line = fgets($handle)) !== false) {
    $people[] = new Person($line);
}

现在你已经掌握了所有拼图,你可以把它们拼凑起来!