How to check if a matrix columns contain numbers without repetition in PHP

1 Answer

0 votes
function columnsHaveUniqueNumbers($matrix) {
    if (empty($matrix) || empty($matrix[0])) {
        return true;
    }

    $numCols = count($matrix[0]);
    for ($j = 0; $j < $numCols; $j++) {
        $columnSet = [];

        foreach ($matrix as $row) {
            if (in_array($row[$j], $columnSet)) {
                return false;
            }
            $columnSet[] = $row[$j];
        }
    }
    
    return true;
}

$matrix1 = [
    [1, 4, 7],
    [2, 5, 8],
    [3, 6, 9]
];

$matrix2 = [
    [1, 4, 7],
    [2, 4, 8],
    [3, 6, 9]
];

echo "Matrix 1 columns have unique numbers: " . (columnsHaveUniqueNumbers($matrix1) ? "true" : "false") . "\n";
echo "Matrix 2 columns have unique numbers: " . (columnsHaveUniqueNumbers($matrix2) ? "true" : "false") . "\n";

 
 
/*
run:
 
Matrix 1 columns have unique numbers: true
Matrix 2 columns have unique numbers: false
 
*/

 



answered May 28, 2025 by avibootz
...