Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?

Các hàm tổng hợp tóm tắt dữ liệu bảng. Khi các hàng được chia thành các nhóm, các hàm tổng hợp được áp dụng để chỉ trả về một giá trị cho mỗi nhóm. Tốt hơn là xác định từng hàng tóm tắt bằng cách bao gồm mệnh đề GROUP BY trong kết quả truy vấn. Tất cả các cột khác với những cột được liệt kê trong mệnh đề GROUP BY phải được áp dụng hàm tổng hợp cho chúng

Thí dụ

Để lấy dữ liệu của 'agent_code' và tổng 'advance_amount' cho từng 'agent_code' riêng lẻ từ bảng 'orders' với điều kiện sau -

1. cùng một 'agent_code' sẽ không đến hai lần,

câu lệnh SQL sau đây có thể được sử dụng

bảng mẫu. mệnh lệnh


Mã SQL

SELECT agent_code, 
SUM (advance_amount) 
FROM orders 
GROUP BY agent_code;

đầu ra

AGENT_CODE SUM(ADVANCE_AMOUNT)
---------- -------------------
A004                      2100
A002                      3500
A007                       500
A009                       100
A011                       900
A012                       450
A010                      3700
A013                      3200
A001                       200
A008                      3300
A006                       600
A005                      3100
A003                      1000

Trình bày bằng hình ảnh

Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?

SQL SUM() sử dụng nhiều cột với nhóm theo

Để lấy dữ liệu của 'cust_city' và tổng của 'opening_amt' và 'receive_amt' cho mỗi 'cust_city' riêng lẻ từ bảng 'customer' với điều kiện sau -

1. cùng một 'cust_city' không nên đến nhiều hơn một lần,

câu lệnh SQL sau đây có thể được sử dụng

bảng mẫu. khách hàng


Mã SQL

SELECT cust_city, 
SUM (opening_amt + receive_amt) 
FROM customer 
GROUP BY cust_city;

đầu ra

CUST_CITY                           SUM(OPENING_AMT+RECEIVE_AMT)
----------------------------------- ----------------------------
Bangalore                                                  62000
Brisban                                                    41000
Chennai                                                    51000
Hampshair                                                  10000
London                                                     48000
Mumbai                                                     51000
New York                                                   32000
San Jose                                                   12000
Torento                                                    46000

Ghi chú. Đầu ra của câu lệnh SQL đã nói ở đây được lấy bằng cách sử dụng Cơ sở dữ liệu Oracle 10g Express Edition

Hàm MySQL SUM() truy xuất giá trị tổng của một biểu thức đã trải qua thao tác nhóm theo mệnh đề GROUP BY

Thí dụ

bảng mẫu. mua


Mã số

SELECT cate_id,SUM(total_cost)
FROM purchase            
GROUP BY cate_id;

Biểu thức đại số quan hệ

Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?

Cây đại số quan hệ

Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?

Giải trình

Câu lệnh MySQL ở trên trả về tổng 'total_cost' từ bảng mua hàng cho từng nhóm danh mục ('cate_id')

Hãy tưởng tượng rằng bạn có một mảng các nhãn hiệu được lập chỉ mục. Bây giờ, bạn muốn cộng tất cả các điểm và tính tỷ lệ phần trăm. Trong trường hợp đó, bạn sẽ cần chuyển mảng đánh dấu cho hàm tổng của mảng PHP để nhận tổng số điểm trong vòng vài giây

Đây là một khối mã sẽ giúp bạn có tổng mảng PHP

// tạo mảng nhãn hiệu$marks = array(90, 60, 89, 70, 88, 50) . $tổng. ;// xuất. Tổng số điểm. 447echo “
”;
// tính tỷ lệ phần trăm$percentage = ($total / 600) * 100 . $phần trăm %. ”// xuất. tỷ lệ phần trăm. 74. 5 %?>

// creating an array of marks
$marks = array(90, 60, 89, 70, 88, 50);
// using the array_sum function
$total = array_sum($marks);
// printing total marks
echo “Total Marks: $total.”;
// output: Total Marks: 447
echo “
”;

// calculating percentage
$percentage = ($total / 600) * 100;
// printing percentage
echo “Percentage: $percentage %.”
// output: Percentage: 74.5 %
?>

– Sử dụng mảng_sum trong PHP với mảng liên kết

Nếu bạn có một mảng văn phòng phẩm kết hợp chứa số lượng của các mặt hàng khác nhau và bạn muốn cộng các số lượng đã cho để xem bạn có tổng cộng bao nhiêu mặt hàng, bạn sẽ cần sử dụng hàm array_sum trong PHP mà không cần sửa đổi gì thêm để có được kết quả chính xác

Vui lòng xem biểu diễn mã đã cho

// tạo mảng kết hợp$stationary = array(“Pencils” = . tổng $. ;// xuất. Tổng số lượng. 33. ?>
// creating an associative array
$stationary = array(
“Pencils” => 10,
“Sharpners” => 5,
“Erasers” => 12,
“Rulers” => 6,
);
// using the array_sum function
$sum = array_sum($stationary);
// printing the total quantity
echo “Total Quantity: $sum.”;
// output: Total Quantity: 33.
?>

Tổng giá trị mảng nằm trong nhiều lớp

Bạn đang tìm cách cộng các giá trị có trong một mảng nhiều chiều? . Nhưng bạn có thể sử dụng vòng lặp foreach để lấy tất cả các giá trị của mảng nhiều chiều và cộng các giá trị giống nhau. Hơn nữa, bạn thậm chí có thể sử dụng các khóa của mảng ban đầu để biểu thị tổng giá trị

– Ví dụ mã hóa để thêm giá trị của một mảng nhiều chiều

Hãy thử nghĩ về một chương trình quản lý thời gian bao gồm một mảng nhiệm vụ đa chiều. Mảng nhiệm vụ bao gồm năm mảng kết hợp với tên nhiệm vụ là khóa và giờ làm việc là giá trị. Hơn nữa, các phím giống nhau trong tất cả các mảng bên trong. Vì vậy, bây giờ bạn muốn xem bạn đã dành bao nhiêu thời gian để hoàn thành mỗi nhiệm vụ

Do đó, ở đây bạn sẽ phải sử dụng vòng lặp foreach hai lần để truy cập tất cả các giá trị và thêm chúng vào một mảng kết hợp khác có cùng khóa

Bạn cũng có thể tham khảo đoạn mã được cung cấp tại đây để hiểu ví dụ trên đang nói về điều gì

// tạo một mảng nhiệm vụ$tasks = array(array(“ . 5),array(“Đọc” => 2, “Viết” => 6, “Nấu ăn” => 1, “Đi bộ” => 1),array(“Đọc” => 1, “Viết” => 7, “Nấu ăn” => 2, “Đi bộ” => 1),}// in mảng total_hoursprint_r($total_hours);
// creating an array of tasks
$tasks = array(
array(“Reading” => 2, “Writing” => 5, “Cooking” => 2, “Walking” => 1),
array(“Reading” => 3, “Writing” => 4, “Cooking” => 1, “Walking” => 0.5),
array(“Reading” => 2, “Writing” => 6, “Cooking” => 1, “Walking” => 1),
array(“Reading” => 3, “Writing” => 5, “Cooking” => 2, “Walking” => 0.5),
array(“Reading” => 1, “Writing” => 7, “Cooking” => 2, “Walking” => 1),
);
// creating an empty array to add total number of hours
$total_hours = array();
// iterating through the tasks array
foreach ($tasks as $key=>$inner_array) {
// iterating through each inner array
foreach ($inner_array as $task=>$hours)
// checking if the key already exists in the total_hours array
// and adding all the values belonging to a particular key in the total_hours array
array_key_exists( $task, $total_hours ) ? $total_hours[$task] += $hours : $total_hours[$task] = $hours;
}
// printing the total_hours array
print_r($total_hours);
?>

Dưới đây là tổng số giờ bạn đã dành để thực hiện một nhiệm vụ cụ thể

Mảng ( [Đọc] => 11 [Viết] => 27 [Nấu ăn] => 8 [Đi bộ] => 4 )

Hàm Array_sum trong PHP Tập trung vào một khóa cụ thể

Nhưng nếu bạn muốn thêm tất cả các giá trị của chỉ một khóa cụ thể của một mảng nhiều chiều thì sao? . Nhưng hãy kiểm tra phiên bản PHP của bạn trước khi bạn tiến hành giải pháp vì có hai giải pháp đang hoạt động. một cái sử dụng chức năng array_map() và một cái khác sử dụng chức năng array_column().

Vì vậy, bạn sẽ phải sử dụng hàm array_map() trong các phiên bản PHP dưới 5. 5 vì hàm array_column() chỉ có trong PHP >= 5. 5

– Ví dụ mã hóa để sử dụng hàm tính tổng PHP với mảng_cột

Ví dụ: bạn có một mảng nhiều chiều lưu trữ các chi tiết hóa đơn như product_code, product và price. Bây giờ, bạn muốn tính tổng số tiền bằng cách cộng giá của tất cả các sản phẩm. Do đó, bạn sẽ sử dụng hàm array_column() để lấy giá của tất cả các sản phẩm. Tiếp theo, bạn sẽ gọi hàm array_sum của PHP để thêm tất cả các mức giá như đoạn mã hiển thị bên dưới

// tạo mảng đa chiều cho chi tiết hóa đơn$invoice = array(array . $total_amount”;// đầu ra. Tổng cộng. 1410?>
// creating a multidimensional array for invoice details
$invoice = array(
array(“product_code” => “1043”, “product” => “Shampoo”, “price” => 350),
array(“product_code” => “1030”, “product” => “Chocolate”, “price” => 110),
array(“product_code” => “1213”, “product” => “Ketchup”, “price” => 150),
array(“product_code” => “1080”, “product” => “Biscuits”, “price” => 300),
array(“product_code” => “1190”, “product” => “Snacks”, “price” => 500)
);
// using the array_sum function with the array_column function
$total_amount = array_sum(array_column($invoice, ‘price’));
// printing the total amount
echo “Total Amount: $total_amount”;
// output: Total Amount: 1410
?>

– Ví dụ mã hóa để sử dụng PHP array_sum Với array_map

Tiếp tục với ví dụ tạo tổng số tiền tương tự, bây giờ bạn sẽ sử dụng hàm array_map() để lấy tất cả giá. Tiếp theo, bạn sẽ thực thi hàm array_sum để cộng tất cả các mức giá và tạo ra tổng số tiền

Dưới đây là các dòng mã sẽ giúp bạn lấy tổng số tiền cho ví dụ trên trong PHP < 5. 5

// sử dụng hàm array_sum với hàm array_map$total_amount = array_sum(array_map(function($array){< . $total_amount”;// đầu ra. Tổng cộng. 1410?>
// using the array_sum function with the array_map function
$total_amount = array_sum(array_map(function($array){
return $array[‘price’];
}, $invoice));
// printing the total amount
echo “Total Amount: $total_amount”;
// output: Total Amount: 1410
?>

Tính tổng một mảng dựa trên việc nhóm mảng

Bạn có muốn đính kèm chức năng “nhóm theo” với mảng đa chiều của mình để lấy tổng của mảng PHP không? . Chắc chắn, bạn có thể tạo một hàm tùy chỉnh chấp nhận một mảng, khóa bạn muốn sử dụng để nhóm và khóa có giá trị bạn muốn thêm. Tiếp theo, hàm đã cho sử dụng vòng lặp foreach và trả về một mảng khác đáp ứng nhu cầu của bạn

– Khối mã để sử dụng nhóm theo chức năng để thêm giá trị

Công thức bên dưới là khi bạn có một mảng cho lịch biểu hàng tháng chứa các đợt, số bài giảng và teacher_ids và bạn muốn lấy tổng số bài giảng do một giáo viên cụ thể giảng dạy. Nói một cách đơn giản, bạn muốn nhóm mảng theo teacher_id

Vì vậy, đây là mã cho cùng một tình huống và chức năng tùy chỉnh mang lại kết quả chính xác

// tạo mảng đa chiều$monthly_schedule = array(array(“batch . array_key_exists($key, $myArray)){$myArray[$key] = mảng($groupBy => $item[$groupBy], Mảng ( [teacher_id] => 1 [bài giảng] => 23 ) [2] => Mảng ( [teacher_id] => 2 [bài giảng] => 27 ) )
// creating a multidimensional array
$monthly_schedule = array(
array(“batch” => “1708A”, “lectures” => 10, “teacher_id” => 1),
array(“batch” => “1709B”, “lectures” => 12, “teacher_id” => 2),
array(“batch” => “1709A”, “lectures” => 8, “teacher_id” => 1),
array(“batch” => “1710M”, “lectures” => 15, “teacher_id” => 2),
array(“batch” => “1704A”, “lectures” => 5, “teacher_id” => 1),
);
// creating a custom function
function groupby_teacher($array, $groupBy, $value){
// creating an empty array
$myArray = array();
// iterating through the array passed as argument
foreach ($array as $item){
// getting the groupBy value
$key = $item[$groupBy];
// checking if the value exists in the new array
if(!array_key_exists($key, $myArray)){
$myArray[$key] = array(
$groupBy => $item[$groupBy],
$value => $item[$value],
);
}
else{
$myArray[$key][$value] = $myArray[$key][$value] + $item[$value];
}
}
return $myArray;
}
// executing the custom function and printing the resulting array
print_r(groupby_teacher($monthly_schedule,”teacher_id”,”lectures”));
// output:  Array ( [1] => Array ( [teacher_id] => 1 [lectures] => 23 ) [2] => Array ( [teacher_id] => 2 [lectures] => 27 ) )
?>

Tổng hợp

Chắc chắn, hàm array_sum PHP tạo điều kiện thuận lợi cho quá trình cộng tất cả các giá trị mảng. Hơn nữa, chức năng tương tự cũng đi kèm với các chức năng khác để cung cấp cho bạn kết quả mong muốn. Bây giờ, nếu bạn đang tìm kiếm một bản sửa đổi nhanh chóng của bài viết trên, thì hãy xem bên dưới

  • Bạn có thể sử dụng hàm array_sum trong PHP để tính tổng tất cả các giá trị của một mảng
  • Hàm array_sum trong PHP chấp nhận một mảng và trả về tổng của tất cả các giá trị
  • Bạn sẽ cần sử dụng phương pháp foreach để thêm tất cả các giá trị của một mảng nhiều chiều
  • Bạn có thể sử dụng hàm array_column() hoặc array_map() cùng với hàm array_sum PHP để thêm các giá trị của một khóa mảng cụ thể
  • Bạn có thể tạo một hàm do người dùng định nghĩa để thêm nhóm theo chức năng vào một mảng nhiều chiều

Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?
Vui lòng sử dụng bất kỳ tập lệnh nào đã cho để đáp ứng yêu cầu chương trình của bạn và thêm các giá trị của mảng dựa trên nhiều tiêu chí

5/5 - (16 phiếu)

Làm cách nào để nhóm và tính tổng các giá trị của một mảng trong PHP?

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

Làm cách nào để tính tổng nhiều giá trị mảng trong PHP?

Hàm array_sum() trả về tổng của tất cả các giá trị trong một mảng (một chiều và kết hợp). Nó nhận vào một tham số mảng và trả về tổng của tất cả các giá trị trong đó. Đối số duy nhất của hàm là mảng cần tính tổng.

Làm cách nào để tính tổng các giá trị của một mảng có cùng khóa trong PHP?

Để tính tổng các giá trị của một khóa cụ thể (chẳng hạn như qty ) trong mảng, bạn có thể sử dụng bất kỳ cách nào sau đây. .
vòng lặp foreach;
mảng_tổng() và mảng_cột() ;
array_sum() và array_map() ;
mảng_reduce()

Làm cách nào để tính tổng một mảng trong PHP?

Hàm array_sum() trả về tổng của tất cả các giá trị trong mảng.

+= có hoạt động trên các mảng trong PHP không?

Toán tử + trong PHP khi được áp dụng cho mảng sẽ thực hiện công việc của mảng UNION . mảng $arr += mảng $arr1; .