Home > Backend Development > PHP Problem > How to sum a column of an array in php

How to sum a column of an array in php

PHPz
Release: 2023-04-25 10:00:40
Original
784 people have browsed it

In PHP programming, arrays are a very commonly used data type that can be used to store a series of data, and summing a column of data in an array is often one of the required operations. Next we will introduce how to sum a column of an array in PHP.

In PHP, you can use the array_sum() function to sum all elements in an array. This function accepts an array as a parameter and returns the sum of all elements in the array. For example:

$numbers = array(1, 2, 3, 4, 5);
$sum = array_sum($numbers);
echo "数组元素总和为:$sum";
Copy after login

The above code will output:

数组元素总和为:15
Copy after login

But what if we need to sum a certain column of data in the array? PHP does not have a built-in function to directly implement this function. We need to write the code ourselves.

For example, we have a two-dimensional array $data, which contains several rows of data. Each row of data has the same data structure, as shown below:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);
Copy after login

Now, we need to $ The sum of the 'score' column data in the data array can be implemented by following the following steps:

  1. Define a variable $sum and initialize it to 0 to save the summation result:
$sum = 0;
Copy after login
  1. Traverse the array $data, take out each row of data in turn, and accumulate the value of the 'score' column in the row of data into the $sum variable:
foreach ($data as $row) {
    $sum += $row['score'];
}
Copy after login
  1. Finally, what is stored in the $sum variable is the sum of the 'score' column data.

The complete code is as follows:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);

$sum = 0;

foreach ($data as $row) {
    $sum += $row['score'];
}

echo "score 列数据总和为:$sum";
Copy after login

The above code will output:

score 列数据总和为:255
Copy after login
Copy after login

The time complexity of the above algorithm is O(n), where n represents the array $data The number of rows is a relatively efficient summation method.

In addition to the above methods, you can also use the array_column() function to obtain a column of data in the array, and then use the array_sum() function to sum the column data. For example:

$data = array(
    array('id' => 1, 'name' => 'Tom', 'score' => 80),
    array('id' => 2, 'name' => 'Jack', 'score' => 90),
    array('id' => 3, 'name' => 'Mary', 'score' => 85),
);

$scores = array_column($data, 'score');
$sum = array_sum($scores);

echo "score 列数据总和为:$sum";
Copy after login

The above code will output:

score 列数据总和为:255
Copy after login
Copy after login

The advantage of using the array_column() function to obtain a column of data in an array is that you can flexibly select the columns you want to obtain, and you can also cooperate with other array functions to perform more complex operations.

To sum up, summing a column of an array in PHP can be achieved by traversing the array and accumulating the data of the column. You can also use the array_column() function to first obtain the data of the column, and then use array_sum( ) function to sum. The most appropriate method should be chosen based on the specific situation.

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