Open In App

Php Program to Print matrix in snake pattern

Given an n x n matrix in the given matrix, you have to print the elements of the matrix in the snake pattern.

Examples: 



Input :mat[][] = { {10, 20, 30, 40},
                   {15, 25, 35, 45},
                   {27, 29, 37, 48},
                   {32, 33, 39, 50}};
              
Output : 10 20 30 40 45 35 25 15 27 29
         37 48 50 39 33 32 
Input :mat[][] = { {1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};
Output : 1 2 3 6 5 4 7 8 9


 

We traverse all rows. For every row, we check if it is even or odd. If even, we print from left to right else print from right to left. 






<?php
// PHP program to print
// matrix in snake order
$M= 4;
$N =4;
 
function printLN($mat)
{
    global $M;
    global $N;
     
    // Traverse through all rows
    for ($i = 0; $i < $M; $i++)
    {
 
        // If current row is even,
        // print from left to right
        if ($i % 2 == 0)
        {
            for ($j = 0; $j < $N; $j++)
                echo $mat[$i][$j], " ";
 
        // If current row is odd,
        // print from right to left
        }
        else
        {
            for ($j = $N - 1; $j >= 0; $j--)
                echo $mat[$i][$j] , " ";
        }
    }
}
 
// Driver code
$mat = array(array(10, 20, 30, 40),
             array(15, 25, 35, 45),
             array(27, 29, 37, 48),
             array(32, 33, 39, 50));
 
printLN($mat);
 
// This code is contributed by ajit
?>

Output : 

10 20 30 40 45 35 25 15 27 29 37 48 50 39 33 32 

Time complexity: O(n^2) for given n*n matrix

Auxiliary space: O(1)

Please refer complete article on Print matrix in snake pattern for more details!


Article Tags :