我有一个函数将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扩展名
答案 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;
}