Regular Sudoku solver in PHP

Below is a Brute Force sudoku solver in PHP, finds all solutions.

PHP file


<?php
parse_str($argv[1], $arg);//command line
$dataO = $arg["data"]; //$_GET["data"]; //web
if(!isset($dataO)) die("No data given");
$dataSpl=str_split($dataO);
$grid = [];
$idx = 0;
for ($r = 0; $r < 9; $r++) {
    $grid[$r]=[];
    for ($c = 0; $c < 9; $c++) {
      $grid[$r][$c]=$dataSpl[$idx];
      $idx++;
    }
}

function joingrd($g){
    return join("",$g);
}
function fits($grid,$rp,$cp,$nr){
    if(in_array($nr,$grid[$rp])) return false;
    for ($r = 0; $r < 9; $r++) {
        if($r==$rp) continue;
        if($grid[$r][$cp]==$nr) return false;
    }
    $rb = floor($rp/3) *3;
    $cb = floor($cp/3) *3;
    for($i=$rb;$i<$rb+3;$i++){
        for($j=$cb;$j<$cb+3;$j++){
            if($grid[$i] && $grid[$i][$j]==$nr) return false;
        }
    }
    return true;
}
function solve($grid){
    for ($r = 0; $r < 9; $r++) {
        for ($c = 0; $c < 9; $c++) {
          if($grid[$r][$c]>0){
              continue;
          }
          for($n=1;$n<10;$n++){
              if(fits($grid,$r,$c,$n)){
                  $grid[$r][$c]=$n;
                  solve($grid);
                  $grid[$r][$c]=0;
              }
          }
		  return;
        }
    }
	echo join("",array_map("joingrd",$grid))."\n";
}
solve($grid);
?>

This is a Command line script.

Batch file


php solve.php data=040000508000005007598000142020700800004200006000500000900020010002059003801000000
pause

The example sudoku is not unique.