PHP将数组从文件读入数组而不带引号

时间:2011-11-22 11:45:36

标签: php arrays file

我有一个函数将db查询的结果写入数组。另一个函数将此数组写入文件。

现在我想要一个可以将文件内容放回数组的函数。

数组看起来像这样(当我从数据库中获取它以及它在文件中的外观时):

Array
(
[0] => Array
    (
        [0] => 0605
        [TIME] => 0605
        [1] => AGP
        [CODE] => AGP
    )

[1] => Array
    (
        [0] => 0610
        [TIME] => 0610
        [1] => NBE
        [CODE] => NBE
    )

[2] => Array
    (
        [0] => 0610
        [TIME] => 0610
        [1] => AYT
        [CODE] => AYT
    )

[3] => Array
    (
        [0] => 0620
        [TIME] => 0620
        [1] => TFS
        [CODE] => TFS
    )
)

我试过这个 - >

public function file2Array($file){

    $filename = fopen($file,"r"); 
    $arr = array(); 

        while(!feof($filename)) 
        { 
    //read file line by line into a new array element 
    $arr[] = fgets($filename, 4096); 
    } 
    fclose ($filename); 
    return $arr;
    }

它的工作原理但是我的数组在每行前面都有一个(单个)引号返回(渲染数组无用)。

如何将数组从文件返回到没有引号的数组中,就像在文件中一样?

编辑:也许我应该提一下,正在阅读的文件有.php扩展名

1 个答案:

答案 0 :(得分:0)

正如有人已经说过的那样 - 使用一些数据格式。 CSV,JSON,XML - 任何事情都可以。

您现在正在做的只是将print_r或var_dump(或您使用的任何函数)的输出写入文件。这些功能的输出仅供参考,不用于存储数据。

以下是一些快速功能:

function array_to_file(array $array, $filename)
{
 $handle = fopen($filename, 'w');
 foreach ($array as $a) {
     $string = json_encode($a).PHP_EOL;
     fwrite($handle, $string);
   } 
   fclose($handle)
}

function file_to_array($filename)
{
   $result = array();
   $array_of_lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
   foreach ($array_of_lines as $line){
     $result[] = json_decode($line, true);
   }
   return $result;
}