function isValidSudoku ($board)
{
for ($i = 0; $i < 9; $i++) {
for ($j = 0; $j < 9; $j++) {
if ($board[$i][$j] == '.') {
continue;
}
for ($k = 8; $k > $j; $k--) {
if ($board[$i][$k] == '.') {
continue;
}
if ($board[$i][$j] == $board[$i][$k]) {
echo $i . $j . $k;
return false;
}
}
for ($k = 8; $k > $i; $k--) {
if ($board[$k][$j] == '.') {
continue;
}
if ($board[$i][$j] == $board[$k][$j]) {
echo $i . $j . $k;
return false;
}
}
// 向下取整 找到黑框的起始列
for ($k = $i + 1; $k % 3 != 0; $k++) {
for ($h = floor($j / 3) * 3; $h < floor($j / 3) * 3 + 3; $h++) {
if ($h == $j) {
continue;
}
if ($board[$i][$j] == $board[$k][$h]) {
return false;
}
}
}
}
}
return true;
}