PHP将数组从文件读入数组,不带引号
我有一个函数,可以将db查询的结果写入数组。另一个函数将此数组写入文件 现在我想要一个函数,可以将文件的内容放回数组中 数组如下所示(当我从数据库中获取它时,以及它在文件中的外观): 我试过这个->PHP将数组从文件读入数组,不带引号,php,arrays,file,Php,Arrays,File,我有一个函数,可以将db查询的结果写入数组。另一个函数将此数组写入文件 现在我想要一个函数,可以将文件的内容放回数组中 数组如下所示(当我从数据库中获取它时,以及它在文件中的外观): 我试过这个-> public function file2Array($file){ $filename = fopen($file,"r"); $arr = array(); while(!feof($filename)) { //read fi
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扩展名,正如有人已经说过的那样-使用一些数据格式。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;
}
您的文件是什么样子的?您不想先用文件写入功能搜索问题吗?(顺便说一句,还有一些东西可以逐行读取文件:)我最初的反应是问为什么要在文件中存储数据类型(数组)。我认为将数组存储到带有标题的CSV文件中会更容易,特别是由于该数组的简单性,这将使提取值作为其真实数据类型变得更容易。因此,数据库连接每天只需进行一次。该文件将使用每日数据创建,而不是连接数据库。csv很好。另外,使用json序列化数组并将其存储到文件中如何?你可以很容易地编码和解码。
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;
}