PHP - Ds Sequence::rotate() Function



The PHP Ds\Sequence::rotate() function rotates a sequence by a given number of rotations.

The rotation is performed in such a way that the elements of the sequence are shifted to the left by the specified number of positions. If the number of rotations is negative, the elements are shifted to the right instead.

The rotation is equivalent to successively calling "$sequence->push($sequence->shift())", if the number of rotations is positive or equivalent to "$sequence->unshift($sequence->pop())" if the number of rotations is negative.

Syntax

Following is the syntax of the PHP Ds\Sequence::rotate() function −

abstract public Ds\Sequence::rotate(int $rotations): void

Parameters

Following is the parameter of this function −

  • rotations − The number of times the sequence needs to be rotated.

Return value

This function does not return any value.

Example 1

The following program demonstrates the usage of the PHP Ds\Sequence::rotate() function −

<?php  
   $seq = new \Ds\Vector([1, 2, 3, 4, 5]);  
   echo("The original sequence: \n");  
   print_r($seq);
   $rotate = 1;
   echo "The number of rotation: ".$rotate;
   #using the rotate() function
   $seq->rotate($rotate);
   echo("\nThe sequence after rotating by ".$rotate." places: \n");  
   print_r($seq);
?>

Output

Once the above program is executed, it generates the following output −

The original sequence:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The number of rotation: 1
The sequence after rotating by 1 places:
Ds\Vector Object
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
    [4] => 1
)

Example 2

Following is another example of the PHP Ds\Sequence::rotate() function. We use this function to rotate this sequence (['a', 'e', 'i', 'o', 'u']) by the given number of rotations 3

<?php  
   $seq = new \Ds\Vector(['a', 'e', 'i', 'o', 'u']);  
   echo("The original sequence: \n");  
   print_r($seq);
   $rotate = 3;
   echo "The number of rotation: ".$rotate;
   #using the rotate() function
   $seq->rotate($rotate);  
   echo("\nThe sequence after rotating by ".$rotate." places: \n");  
   print_r($seq);
?>

Output

The above program produces the following output −

The original sequence:
Ds\Vector Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The number of rotation: 3
The sequence after rotating by 3 places:
Ds\Vector Object
(
    [0] => o
    [1] => u
    [2] => a
    [3] => e
    [4] => i
)

Example 3

If the given rotations parameter value is negative, the rotate() function rotates the sequence counterclockwise as follows −

<?php  
   $seq = new \Ds\Vector(["Tutorials", "Point", "India"]);  
   echo("The original sequence: \n");  
   print_r($seq);
   $rotate = -1;
   echo "The number of rotation: ".$rotate;
   #using the rotate() function
   $seq->rotate($rotate);  
   echo("\nThe sequence after rotating by ".$rotate." places: \n");  
   print_r($seq);
?>

Output

After executing the above program, the following output will be displayed −

The original sequence:
Ds\Vector Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
)
The number of rotation: -1
The sequence after rotating by -1 places:
Ds\Vector Object
(
    [0] => India
    [1] => Tutorials
    [2] => Point
)

Example 4

If we pass the rotation value as zero, this function will not rotate the sequence, and the original sequence will remain the same −

<?php  
   $seq = new \Ds\Vector([10, 20, 30]);  
   echo("The original sequence: \n");  
   print_r($seq);
   $rotate = 0;
   echo "The number of rotation: ".$rotate;
   #using the rotate() function
   $seq->rotate($rotate);  
   echo("\nThe sequence after rotating by ".$rotate." places: \n");  
   print_r($seq);
?>

Output

Following is the output of the above program −

The original sequence:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
)
The number of rotation: 0
The sequence after rotating by 0 places:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
)
php_function_reference.htm
Advertisements