0

你能告诉我如何将二维数组保存到文本文件中吗

如果我有一个数组,其索引值中的元素数量未知:

$two_darray[unknown][unknown];
4

4 回答 4

4

你只需要序列化这个数组。您可以将其包装起来serialize()并将其输出到文件中。然后您可以稍后使用unserialize()它来解码它。

为了可移植性,我建议使用 JSON 代替json_encode()/ json_decode()

file_put_contents('someFile.json', json_encode($yourArray));
于 2013-07-22T03:26:31.810 回答
3

实际上,@Brad 和 @Hilmi 的答案是正确的,但我不确定只使用 JSON 是一个好建议。

你可以选择

JSON

写:file_put_contents('someFile.json', json_encode($two_darray));

读:$two_darray = json_decode(file_get_contents('someFile.txt'));

XML

这个答案

序列化数据

写:file_put_contents('someFile.txt', serialize($two_darray));

读:$two_darray = unserialize(file_get_contents('someFile.txt'));

CSV(与 MS Excel 或某些 DB 一起使用)

$handler = fopen('someFile.csv', 'w+');
foreach ($two_darray as $one_darray) {
    fputcsv($handler, $one_darray);
}

fgetcsv阅读

甚至SQLite

$db = new SQLiteDatabase('someFile.sqlite');
foreach ($two_darray as $one_darray) {
    $db->query("INSERT INTO `MyTable` VALUES (".implode(',', $one_darray).")");
}

读:$two_darray = $db->sqlite_array_query("SELECT * FROM MyTable");

编辑二进制文件(对于 .zip 或 .tar.gz)

试试包()

于 2013-07-22T04:06:53.827 回答
0

您可以将数组序列化为字符串并将其保存到文件中,并且当您需要该数组时,只需通过反序列化文件的内容即可获得该数组

于 2013-07-22T03:27:27.150 回答
0
<?php
$arr = array( array('aa', 'aa'), array('bb','bb') );
file_put_contents('/tmp/test',serialize($arr));
var_dump(unserialize(file_get_contents('/tmp/test')));
?>

您还可以使用 json_encode/json_decode 而不是上面@Brad 建议的序列化/反序列化

于 2013-07-22T03:39:17.227 回答