二次元配列をテキストファイルに保存する方法を教えてください
インデックス値の要素数が不明な配列がある場合:
$two_darray[unknown][unknown];
この配列をシリアライズするだけです。これをラップしserialize()
てファイルに出力できます。その後、後で使用unserialize()
してデコードできます。
json_encode()
移植性のために、代わりに/を使用して JSON を使用することをお勧めします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')));
?>
上記の @Brad で提案されているように、シリアル化/逆シリアル化の代わりに json_encode/json_decode を使用することもできます