Hàm count() trong PHP có nhiệm vụ lấy ra số phần tử trong một mảng.
Hàm này được sử dụng trên PHP4, PHP5 và PHP7.
Cú pháp
Cú pháp hàm count() trong PHP như sau:
count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int
Tham số truyền vào
- $array là mảng được truyền vào.
- $mode là option tùy chọn khi đếm phần tử mảng
Với $mode là COUNT_RECURSIVE
thì hàm count đếm đệ quy mảng.
Giá trị trả về
Hàm count() sẽ trả về số phần tử của mảng được đếm, nếu đối tượng được truyền vào không phải là một mảng, đồng thời cũng không phải một đối tượng của Countable thì sẽ trả về 1. Trường hợp ngược lại khi đối tượng là NULL sẽ trả về 0.
Ví dụ minh họa
<?php $a[0] = 1; $a[1] = 3; $a[2] = 5; var_dump(count($a)); $b[0] = 7; $b[5] = 9; $b[10] = 11; var_dump(count($b)); var_dump(count(null)); var_dump(count(false)); ?>
Và kết quả trả về
int(3) int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 // as of PHP 7.2 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 // as of PHP 7.2 int(1)
Ví dụ khi có tham số $mode
<?php $food = array('fruits' => array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea')); // recursive count echo count($food, COUNT_RECURSIVE); // output 8 // normal count echo count($food); // output 2 ?>
Ứng dụng
Trong các trường hợp bạn cần triển khai một vòng lặp, có sử dụng count() thì bạn hãy sử dụng giải pháp sau, để tối ưu code hơn.
//Hiệu năng kém for($i=0;$i<count($some_arr);$i++) { // calculations } //Bằng cách sao chép count mảng, bạn sẽ có hiệu năng tốt hơn $arr_length = count($some_arr); for($i=0;$i<$arr_length;$i++) { // calculations }
Nếu bạn muốn kiếm tra số phần tử không phải là mảng trong một mảng đa chiều bạn có thể sử dụng cách sau
function count_elt($array, &$count=0){ foreach($array as $v) if(is_array($v)) count_elt($v,$count); else ++$count; return $count; }
Khuyến cáo
Nếu bạn sử dụng phiên bản PHP 7.2 thì bạn hãy sử dụng cách sau để kiểm tra một phần tử có phải là một mảng hay không, trước khi sử dụng hàm count() với nó.
<?php $countFruits = is_array($countFruits) || $countFruits instanceof Countable ? count($countFruits) : 0; ?>
Các hàm liên quan
- Hàm is_array() kiểm tra phần tử truyền vào có phải một mảng hay không.
- Hàm isset() kiểm tra xem biến có tồn tại hay không.
- Hàm empty() kiểm tra xem biến đưa vào có rỗng hay không.
- Hàm reset() reset lại con trỏ của một mảng.
- Hàm str_len() đếm số ký tự trong 1 chuỗi
- Hàm is_countable() kiểm tra xem phần tử có đếm được không.
Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm count() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé.
Cảm ơn bạn đã ghé thăm codetutam.com