Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

How to change all elements of row i and column j in a binary matrix to 0 if cell[i, j] is 0 with PHP

1 Answer

0 votes
function changeRowColumn(&$matrix, $row, $col) {
    $rows = count($matrix);
    $cols = count($matrix[0]);
    
    for ($j = 0; $j < $cols; $j++) {
        if ($matrix[$row][$j] != 0) {
            $matrix[$row][$j] = -1;
        }
    }
    for ($i = 0; $i < $rows; $i++) {
        if ($matrix[$i][$col] != 0) {
            $matrix[$i][$col] = -1;
        }
    }
}

function changeBinaryMatrix(&$matrix) {
    $rows = count($matrix);
    $cols = count($matrix[0]);
    
    if ($rows == 0 || $cols == 0) {
        return;
    }
    
    for ($i = 0; $i < $rows; $i++) {
        for ($j = 0; $j < $cols; $j++) {
            if ($matrix[$i][$j] == 0) {
                changeRowColumn($matrix, $i, $j);
            }
        }
    }
    
    for ($i = 0; $i < $rows; $i++) {
        for ($j = 0; $j < $cols; $j++) {
            if ($matrix[$i][$j] == -1) {
                $matrix[$i][$j] = 0;
            }
        }
    }
}
    
function printMatrix($matrix) {
    $rows = count($matrix);
    $cols = count($matrix[0]);
    
    for ($i = 0; $i < $rows; $i++) {
        for ($j = 0; $j < $cols; $j++) {
            echo $matrix[$i][$j] . " ";
        }
        echo "\n";
    }
}
        
$matrix = array(
            array(1, 1, 0, 1, 1, 1), 
            array(1, 1, 1, 1, 1, 1), 
            array(1, 1, 0, 1, 1, 1), 
            array(1, 1, 1, 1, 1, 1), 
            array(1, 0, 1, 1, 1, 1)
        );
        
changeBinaryMatrix($matrix);

printMatrix($matrix);




/*
run:
 
0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 
1 0 0 1 1 1 
0 0 0 0 0 0 
 
*/

 



answered Jan 22, 2024 by avibootz
...