PHP如何将多维数组写入文件

时间:2010-11-04 21:07:00

标签: php

我正在尝试使用文件来为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>";

}

4 个答案:

答案 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);

请参阅此处示例http://www.my-php-scripts.net/index.php/Array-Scripts/php-write-multidimensional-array-into-file-advanced-php.html