PHP program to find the Standard Deviation of an array

Given an array of elements. We need to find the Standard Deviation of the elements of the array in PHP.

Examples:

Input : array(2, 3, 5, 6, 7)
Output : 1.5620499351813

Input : array(1, 2, 3, 4, 5)
Output : 1

The following problem can be solved using the PHP inbuilt functions. The inbuilt functions used to solve the above problem are as such:

  1. array_sum(): The function returns the sum of all the elements of an array.
  2. count(): This function gives the number of elements currently present in the given array.
  3. sqrt(): The function returns the square root of the given number.

To calculate the standard deviation, we have to first calculate the variance. The variance can be calculated as the sum of squares of differences between all numbers and means. Finally to get the standard deviation we will use the formula, √(variance/no_of_elements).

Below is the implementation in PHP to calculate the standard deviation:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
      
    // function to calculate the standard deviation
    // of array elements
    function Stand_Deviation($arr)
    {
        $num_of_elements = count($arr);
          
        $variance = 0.0;
          
                // calculating mean using array_sum() method
        $average = array_sum($arr)/$num_of_elements;
          
        foreach($arr as $i)
        {
            // sum of squares of differences between 
                        // all numbers and means.
            $variance += pow(($i - $average), 2);
        }
          
        return (float)sqrt($variance/$num_of_elements);
    }
      
    // Input array
    $arr = array(2, 3, 5, 6, 7);
      
    print_r(Stand_Deviation($arr));
      
?>

chevron_right


Output:

1.8547236990991


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.