繁体   English   中英

PHP二维数组到文件

[英]PHP two Dimensional array in to file

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

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

$two_darray[unknown][unknown];

您只需要序列化此数组。 您可以将其包装在serialize()并将其输出到文件中。 然后,您可以稍后使用unserialize()进行解码。

对于可移植性,我建议使用JSON代替,与json_encode() / json_decode()

file_put_contents('someFile.json', json_encode($yourArray));

实际上,@ 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)

试试pack()

您可以将数组序列化为字符串并将其保存到文件中,并且只要想通过反序列化文件内容来获取该数组,就可以将数组取回来

<?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所建议

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM