search
HomeBackend DevelopmentPHP ProblemPHP finds the sum of a column in a two-dimensional array

During the PHP development process, we often need to perform sum operations on data in arrays. For one-dimensional arrays, we can use the array_sum function to sum directly, but when the array becomes a two-dimensional array, we need some additional operations to find the sum of the specified columns.

For example, we now have a two-dimensional array that stores sales data. Each sub-array represents the sales data of a product, including product ID, sales volume, unit price and other information. We need to find the total revenue of all items, which is the sum of the product of sales volume and unit price.

So, how to implement this operation?

First, we can use the array_column function to get the array of the specified column. This function is new in the PHP5.5 version. Its syntax is: array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ), where $input is the array of columns to be extracted, and $column_key is the array to be extracted. The key name or numeric index of the column. $index_key is optional and is the key name or numeric index of the column to be used as the key of the returned array.

For example, in the above two-dimensional array of sales data, we can use the following code to obtain the sales array of all products:

$sold_amount = array_column($sales_data, 'sold_amount');

Next, we can use the array_reduce function to modify the $sold_amount array Perform an accumulation operation to obtain the total sales volume. The syntax is: array_reduce ( array $array , callable $callback [, mixed $initial = null ] ), where $array is the array to be accumulated, $callback is a custom callback function, and $initial is the initial value.

For example, we can use the following code to find the sum of the sales of all products:

$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

Next, we need to perform the same operation on the unit price array to get the sum of the unit prices of all products. Finally, we can multiply the two sums together to get the total revenue for all items.

The complete code is as follows:

$sales_data = array(
    array('id' => 1, 'sold_amount' => 50, 'unit_price' => 2.5),
    array('id' => 2, 'sold_amount' => 20, 'unit_price' => 3.2),
    array('id' => 3, 'sold_amount' => 100, 'unit_price' => 1.8),
);

$sold_amount = array_column($sales_data, 'sold_amount');
$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

$unit_price = array_column($sales_data, 'unit_price');
$total_unit_price = array_reduce($unit_price, function($carry, $item){
    return $carry + $item;
});

$total_revenue = $total_sold_amount * $total_unit_price;

echo '所有商品的总收入为:' . $total_revenue;

After the above code is executed, the output: the total income of all products is: 630.

To sum up, when we need to perform a sum operation on a certain column of a two-dimensional array, we can use the array_column function to obtain the array of the specified column, and then use the array_reduce function to perform an accumulation operation on the array to obtain the The sum of the columns. Through these methods, we can process data more conveniently and improve development efficiency.

The above is the detailed content of PHP finds the sum of a column in a two-dimensional array. For more information, please follow other related articles on the PHP Chinese website!

Statement
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function