2010-11-04 29 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