0) { [$x, $y] = array_shift($queue); //down if (isset($input[$x + 1][$y]) && $visited[$x + 1][$y] > $visited[$x][$y] + $input[$x + 1][$y] ) { $queue[] = [$x + 1, $y]; $visited[$x + 1][$y] = $visited[$x][$y] + $input[$x + 1][$y]; } //right if (isset($input[$x][$y + 1]) && $visited[$x][$y + 1] > $visited[$x][$y] + $input[$x][$y + 1] ) { $queue[] = [$x, $y + 1]; $visited[$x][$y + 1] = $visited[$x][$y] + $input[$x][$y + 1]; } } echo $visited[count($visited)-1][count($visited[0])-1]; //553