In PHP, summing a column of an array is a common requirement. If the array is a one-dimensional array, use the array_sum() function. For example:
$array = array(1, 2, 3, 4, 5); $sum = array_sum($array); // $sum = 15
But if the array is a two-dimensional array, you need to extract all the values of the column first and then sum them. You can use the array_column() function to extract the values of a column, and then use the array_sum() function to sum the values. For example:
$records = array( array('name' => 'John', 'score' => 85), array('name' => 'Mary', 'score' => 92), array('name' => 'Peter', 'score' => 78), array('name' => 'Lisa', 'score' => 89) ); $scores = array_column($records, 'score'); $sum = array_sum($scores); // $sum = 344
In the above example, $records is a two-dimensional array that contains each person's name and score. Use the array_column() function to extract all the scores, and then use the array_sum() function to sum them, resulting in a total score of 344.
It should be noted that if the value of the column contains non-numeric types (such as strings), they need to be converted into numbers through type conversion first. Otherwise, the result of the sum may be inaccurate. For example:
$records = array( array('name' => 'John', 'score' => '85'), array('name' => 'Mary', 'score' => '92'), array('name' => 'Peter', 'score' => '78'), array('name' => 'Lisa', 'score' => '89') ); $scores = array_column($records, 'score'); $sum = array_sum($scores); // $sum = 0
In the above example, the scores in $records are all string types. If you sum them directly, you will get an inaccurate result of 0. They can be converted to numeric types by specifying the third argument in the array_column() function. For example:
$records = array( array('name' => 'John', 'score' => '85'), array('name' => 'Mary', 'score' => '92'), array('name' => 'Peter', 'score' => '78'), array('name' => 'Lisa', 'score' => '89') ); $scores = array_column($records, 'score', 'name'); $scores = array_map('intval', $scores); $sum = array_sum($scores); // $sum = 344
In the above example, the array_column() function is used to extract the scores of each person and store them in a new array with the name as the key and the score as the value. Then use the array_map() function to type-convert these values, and finally use the array_sum() function to sum them, getting the correct result of 344.
To sum up, summing a column of an array is not difficult in PHP. You just need to pay attention to the data type.
The above is the detailed content of How to sum a column of an array in php. For more information, please follow other related articles on the PHP Chinese website!