PHP - Ds Vector::rotate() Function



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

The rotation is performed in such a way that the elements of the vector 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 "$vector->push($vector->shift())", if the number of rotations is positive or equivalent to "$vector->unshift($vector->pop())" if the number of rotations is negative.

Syntax

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

public void Ds\Vector::rotate( int $rotations )

Parameters

Following is the parameter of this function −

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

Return value

This function does not return any value.

Example 1

The following is the basic example of the PHP Ds\Vector::rotate() function −

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

Output

The above program produces the following output −

The original vector:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The number of rotations: 1
The vector 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\Vector::rotate() function. We use this function to rotate this vector (['a', 'e', 'i', 'o', 'u']) by a given number of rotations 3

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

Output

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

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

Example 3

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

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

Output

Once the above program is executed, it will display the following output −

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

Example 4

If the given rotations parameter value is negative, the rotate() function rotates the vector counterclockwise

<?php
   $vector = new \Ds\Vector([10, 20, 30, 40, 50]); 
   echo("The original vector: \n"); 
   print_r($vector);
   $rotations = -1;
   echo "The number of rotations: ".$rotations;
   #using rotate() function
   $vector->rotate($rotations); 
   echo "\nThe vector after rotating by ".$rotations." places: \n"; 
   print_r($vector);
?>

Output

On executing the above program, it will generate the following output −

The original vector:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)
The number of rotations: -1
The vector after rotating by -1 places:
Ds\Vector Object
(
    [0] => 50
    [1] => 10
    [2] => 20
    [3] => 30
    [4] => 40
)
php_function_reference.htm
Advertisements