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!