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
*/