I'm trying to get the correct result for deleted columns and rows in a matrix, but whenever I remove the first column specified in the $columnsToRemove
array, the array shifts, and I end up deleting the wrong column. in the following example, how would I delete both the 0th and the 2nd column in each submatrix in one go?
$matrix = [
[1,0,0,2],
[0,5,0,1],
[0,0,3,5]
];
$rowsToDelete = [1];
$columnsToDelete = [0, 2];
function constructSubmatrix($matrix, $rowsToDelete, $columnsToDelete) {
foreach($rowsToDelete as $row){
array_splice($matrix, $row, 1);
}
foreach($columnsToDelete as $column){
for($i = 0; $i < count($matrix); $i++){
array_splice($matrix[$i], $column, 1);
}
}
return $matrix;
}
The return value should be: [[0,2],[0,5]]
But I keep getting: [[0,0],[0,3]]