使用指定键将数组写入并读取到json文件

时间:2017-06-20 14:23:22

标签: php arrays json file

我有一个数组

$monthlyStatistics = array('total' => 1, 'opened' => 1, 'clicked' => 1, 'bounced' => 1, 'optout' => 1);

我已保存到json文件

$monthlypath = '/storage/monthlytotals.json';
file_put_contents($monthlypath, json_encode($monthlyStatistics));

我需要读取这个json文件并将内容输出为具有指定键的数组。我目前正在这样做:

$monthlypath = '/storage/monthlytotals.json';
$read_file = file_get_contents($monthlypath);
$monthlytotals = json_decode($read_file);

我知道file_put_contents是一个字符串,而file()应该将整个文件读入一个数组(我目前没有使用它,因为它没有读取file_put_contents所写的内容)。

我这样做是错误还是我错过了一个与file()配合使用的函数,以便将其正确地编写为数组?

1 个答案:

答案 0 :(得分:1)

您正尝试将内存中的PHP数据结构转换为可写入磁盘的内容。不知何故需要序列化 ​​- 通过json_encode()serialize()等。

file()将文件读入行列表(每个数组条目一行)。

对于你正在做的事情,

file_put_contents($monthlypath, json_encode($totals))

$totals = json_decode(file_get_contents($monthlypath), true)

可能是你可能需要的全部。