How to sum a column of an array in php

PHPz
Release: 2023-04-26 09:40:55
Original
620 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login

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
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template