Làm cách nào để đếm giá trị cụ thể trong mảng trong PHP?

Trong bài viết này, chúng ta sẽ thấy how to get count of specific values in a PHP array. Thông thường, chúng ta cần đếm số lần xuất hiện của các giá trị cụ thể trong một mảng. Nói cách khác, để tìm tần số của các giá trị trong một mảng. Các vấn đề về phân tích dữ liệu thường liên quan đến việc tìm kiếm tần suất, trong đó bạn có thể đang điều tra một tập dữ liệu để trả lời câu hỏi “CÁCH NHIỀU?”

array_count_values đếm các giá trị cụ thể trong mảng PHP. Vì vậy, hãy nhảy thẳng vào bài viết.

Cấu tạo của array_count_values

Sự mô tả

Hàm này đếm tất cả các giá trị của một mảng

Chữ ký chức năng

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
0

Tranh luận

  • mảng – Mảng đầu vào

Loại trả lại

Trả về một mảng kết hợp với các giá trị của mảng đầu vào là khóa và số lượng của chúng là giá trị

Ví dụ sử dụng



Ví dụ #1 – Nhận số lượng giá trị cụ thể trong một mảng PHP bằng cách sử dụng array_count_values

Trong ví dụ sử dụng của hàm

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
1, chúng ta đã thấy cách thức hoạt động của hàm. Tuy nhiên, nếu chúng ta có một mảng nhiều chiều, thì chức năng có thể không hoạt động như mong đợi. Vì vậy, chúng ta phải sử dụng một hàm khác để hỗ trợ array_count_values ​​đếm các giá trị cụ thể trong mảng PHP.  

Chúng tôi có một mảng chứa các bản ghi về sinh viên và môn tự chọn mà họ đã chọn. Chúng tôi muốn đếm tần suất của các đối tượng

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];

Đây là một cách sử dụng array_count_values ​​để đếm số môn tự chọn một cách thuận tiện

$electives = array_column[$students_electives, 'Elective'];
//Counts the number of "Yes" and "No"
$electives_count = array_count_values[$electives];
 
print_r[$electives_count];
 
/*
OUTPUT
Array
[
    [Computer Science] => 4
    [Electronics] => 2    
    [Economics] => 2      
    [Mathematics] => 3    
    [Chemistry] => 1      
]
*/

thì đấy. Chúng ta đã sử dụng hàm array_column để tách cột Electives và sau đó chuyển cột đó để lấy tổng số giá trị cụ thể trong một mảng PHP. Đó là cách thuận tiện nhất khi sử dụng hàm array_count_values. Ngoài ra còn có một cách tiếp cận đệ quy để lấy số mảng ở mức thấp nhất của mảng hay nói cách khác, ở các phần còn lại của mảng

Ví dụ #2 – Đếm các giá trị cụ thể trong một mảng PHP bằng đệ quy

Hàm PHP

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
2 lý tưởng để đào sâu vào một mảng đa chiều và truy cập các nút ở lá. Chúng tôi sử dụng chức năng này cùng với array_count_values ​​để truy cập các môn tự chọn nằm ở các lá của mảng kết quả. Đây là cách

$resultant = [];
 
array_walk_recursive[$students_electives,function[$value,$key] use [&$resultant]{
    if[!is_numeric[$value]] {
        //Initiate the count to one for the newly created subject.
        if[!isset[$resultant[$value]]] {
            $resultant[$value] = 1;
        }
 
        //If a subject reoccurs then increase the count by one.
        else {
            $resultant[$value] += 1;
        }
    }    
},$resultant];
 
print_r[$resultant];
 
/*
OUTPUT
Array
[
    [Computer Science] => 4
    [Electronics] => 2    
    [Economics] => 2      
    [Mathematics] => 3    
    [Chemistry] => 1      
]
*/

Tuyệt quá. Chúng tôi đã tìm ra số lượng các giá trị cụ thể trong một mảng PHP theo cách đệ quy. Tiếp theo, hãy xem một cách tiếp cận lặp lại để thực hiện thao tác tương tự. Luôn có nhiều hơn một cách tiếp cận và tình huống mà chúng ta phải chọn một hoạt động cụ thể sẽ quyết định tính khả thi của nó

Ví dụ #3 –  Lấy số lượng giá trị cụ thể trong một mảng PHP bằng cách lặp lại

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
0 liên quan đến việc lặp qua một mảng để thực hiện một thao tác cụ thể. Chúng ta sẽ lặp qua mảng để lấy tổng. Tuy nhiên, cách tiếp cận lặp liên quan đến các vòng lặp lồng nhau và càng nhiều vòng lặp lồng nhau thì hiệu quả của mã càng thấp

$resultant = [];
foreach[$students_electives as $student=>$elective] {
    //Check if a key has been created for the subject
    if[!isset[$resultant[$elective["Elective"]]]] {
        //Initiate the count to one for the newly created subject.
        $resultant[$elective["Elective"]] = 1;
    }
 
    else {
        //If a subject reoccurs then increase the count by one.
        $resultant[$elective["Elective"]] += 1;
    }
}
 
print_r[$resultant];
 
/*
OUTPUT
Array
[
    [Computer Science] => 4
    [Electronics] => 2     
    [Economics] => 2
    [Mathematics] => 3
    [Chemistry] => 1
]
*/

Chúng tôi đã sử dụng một vòng lặp để truy cập mảng và sau đó sử dụng lập chỉ mục trực tiếp để lấy Tự chọn. Ngoài ra, chúng ta có thể sử dụng các vòng lặp lồng nhau, một vòng lặp để truy cập mảng students_electives và một vòng lặp khác để truy cập mảng của từng học sinh.  

Sự kết luận

Bài viết này khám phá cách đếm các giá trị cụ thể trong mảng PHP. Chúng tôi đã thấy ba cách tiếp cận khác nhau, bằng cách sử dụng hàm

$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
1,_______12 và cách tiếp cận
$students_electives = [
    "Andy" => ["ID"=>"1001", "Elective"=>"Computer Science"],
    "Benjamin" => ["ID"=>"1002", "Elective"=>"Electronics"],
    "Catheline" => ["ID"=>"1003", "Elective"=>"Economics"],
    "Dexter" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Eion" => ["ID"=>"1004", "Elective"=>"Computer Science"],
    "Franklin" => ["ID"=>"1005", "Elective"=>"Mathematics"],
    "Gina" => ["ID"=>"1006", "Elective"=>"Chemistry"],
    "Hudson" => ["ID"=>"1007", "Elective"=>"Electronics"],
    "Ira" => ["ID"=>"1008","Elective"=>"Mathematics"],
    "Jessica" => ["ID"=>"1009","Elective"=>"Economics"],
    "Kelvin" => ["ID"=>"1010","Elective"=>"Computer Science"],
    "Liam" =>  ["ID"=>"1011","Elective"=>"Mathematics"],
];
3. Ba trong số các cách tiếp cận này giải quyết vấn đề hiện tại một cách tao nhã. Chúng tôi hy vọng bạn đã học được điều gì đó mới. Hãy theo dõi các bài viết thú vị hơn liên quan đến PHP

Bài viết liên quan

Cách đếm giá trị trong mảng đa chiều PHP
Cách lấy độ dài của mảng trong PHP
Cách biết liệu có phần tử trong mảng không
How to get an array length in PHP

  • ← Cách thay đổi giá trị trong hàm array_walk_recursive PHP
  • Cách tìm và loại bỏ các giá trị trùng lặp trong mảng PHP →

Stephen Phép Lạ

Chào. Tôi hy vọng bạn thích bài viết này. Tôi đã phát triển các trang web và phần mềm một cách chuyên nghiệp trong hơn 20 năm. Tôi bắt đầu FuelingPHP như một cách để đền đáp lại cộng đồng nguồn mở đã giúp tôi có thể sống thoải mái khi xây dựng những thứ tôi yêu thích

Làm cách nào để đếm các giá trị cụ thể trong mảng PHP?

Trả lời. Sử dụng hàm đếm[] hoặc sizeof[] của PHP . Hàm count[] và sizeof[] trả về 0 cho một biến đã được khởi tạo với một mảng trống, nhưng nó cũng có thể trả về 0 cho một biến không được đặt.

Array_count_values ​​là gì?

Hàm array_count_values[] được dùng để đếm tất cả các giá trị bên trong một mảng . Nói cách khác, chúng ta có thể nói rằng hàm array_count_values[] được sử dụng để tính tần số của tất cả các phần tử của một mảng. cú pháp. mảng array_count_values[ $array ] Tham số. Hàm này chấp nhận một tham số duy nhất $array.

Chủ Đề