だから私はこの形式のテキストファイルを持っています
2
3
1 0 0 0 0 0 6 0 7
0 8 0 7 0 1 0 4 0
0 3 2 4 0 0 0 1 0
0 0 0 0 0 9 1 0 0
3 1 0 0 4 0 0 2 9
0 0 4 8 0 0 0 0 0
0 2 0 0 0 3 5 6 0
0 9 0 2 0 4 0 3 0
8 0 3 0 0 0 0 0 2
2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
編集:
最初の 2 行 2 と 3 を 2 つの個別の変数に格納する必要があります。残りのグリッドは 2 次元配列 (キーなし) に転送する必要があります。プログラムが複数のグリッドを処理できることを予測する必要があります (最初の行の値で表されます)。これどうやってするの?キーを持つ 2 次元配列のマージに関係する関数を見つけ続けています。
私の方法よりも優れた/より効率的な方法はありますか?
<?php
$lines = file("sudoku.in", FILE_IGNORE_NEW_LINES);
$num_board = array_shift($lines);
for ($k=0; $k<$num_board; $k++) {
$size = array_shift($lines); //get size
$size *= $size; //square size
//get rid of whitespaces in grid
for ($i=0; $i<$size; $i++) {
$lines[$i] = explode(" ", $lines[$i]);
}
//transfer to 2d array "sudoku"
for ($i=0; $i<$size; $i++) {
for ($j=0; $j<$size; $j++) {
$sudoku[$i][$j] = $lines[$i][$j];
}
}
//print_grid
for ($i=0; $i<$size; $i++) {
for ($j=0; $j<$size; $j++) {
echo $sudoku[$i][$j] . " ";
}
echo "<br>";
}
for ($i=$size; $i>0; $i--)
array_shift($lines);
}
?>