2010-11-04 32 views
0

我试图用文件来保存跳棋PHP我如何写一个多dimmensional数组文件

这是数组的数组

$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

这个家庭作业? – JohnFx 2010-11-04 21:08:15

+0

我想知道的是,我需要将这个数组存储在文件中,然后将显示板显示为具有8x8行和列的html表格。 – hgbso 2010-11-04 21:08:33

+0

排序作业 – hgbso 2010-11-04 21:10:03

回答

10
file_put_contents($f, serialize($board)); 

这将系列化你在一个文件中多维数组。

读回,用

$board = unserialize(file_get_contents($f)); 
1

你为什么不序列化数组并将其存储为一个字符串到文件中。要返回数组,可以从文件中读取字符串并将其序列化。有一个在这里读here

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变种工作得更快,但可以转储只有简单的结构(字符串,数组,数字) 。序列化也可以转储对象,但工作速度较慢并生成更多输出

+0

JSON = JavaScript对象表示法,为什么它不能转储对象? – BoltClock 2010-11-04 21:18:30

+2

@BoltClock:不是解码后得到的特定类,只有'stdClass',它可能不是你想要的... – Wrikken 2010-11-04 21:29:54

+0

@Wrikken:哦,没错,错过了那一点。 – BoltClock 2010-11-04 21:30:41