[$state[0] + 1, $state[1] && is_row_compliant($row, $state[0], $size)], [0, true]); # is this really worth it? :D $solution = true; foreach ($matrix as $row_index => $row) { if (!is_row_compliant($row, $row_index, $size)) { $solution = false; break; } } var_dump($solution);