我正在尝试使用文件来为checkers保存一个数组
这是数组
$board = array(
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0),
array(0,0,0,0,0,0,0,0,0)
);
同时还给出值,以便我可以设置棋盘的开头,将棋子置于预定位置以开始游戏,然后让用户输入他们想要将棋子移动到哪个位置
我已经有了这个while循环
$row = 0;
print "<form>";
print "<table border = 1>";
while ($row < 8){ // Counts to 8. (from 0...7 = 8 times. 0 ... 8 = 9 times)
print "<tr>";
$row++;
$col = 0; // reset column to 0 each time printing one row.
while ($col < 8){
print "<td>";
if($Board[$row][$col] == 0)
{
$value=$row.$col;
print "<input type=\"checkbox\" name=\"box[]\" value=\"$value\">";
// Add \ before " otherwise it will treat as the end of the quote.
}
print "</td>";
$col++;
}
print "</tr>";
}
print "</table>";
print "</form>";
}
答案 0 :(得分:10)
file_put_contents($f, serialize($board));
这将在文件中序列化多维数组。
要阅读它,请使用
$board = unserialize(file_get_contents($f));
答案 1 :(得分:4)
2种变种: 使用序列化
#dump:
file_put_contents('file_name', serialize($board));
#restore:
$board=unserialize(file_get_contents('file_name'));
使用JSON:
#dump:
file_put_contents('file_name', json_encode($board));
#restore:
$board=json_decode(file_get_contents('file_name'));
JSON变体工作得更快,但只能转储简单的结构(字符串,数组,数字)。 serialize也可以转储对象但工作速度较慢并产生更多输出
答案 2 :(得分:1)
为什么不序列化数组并将其作为字符串存储到文件中。要恢复数组,您可以从文件中读取字符串并取消序列化。在这里阅读here
答案 3 :(得分:0)
为什么要序列化和存储?甚至你可以直接将数组打印到文件
ob_start();
print_r($ yourArry);
$ output = ob_get_clean();
file_put_contents('yourfilename.txt',$ output);