Hướng dẫn dùng if count trong PHP

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
  • Tham số truyền vào 
  • Giá trị trả về
  • Ví dụ minh họa
  • Và kết quả trả về
  • Ví dụ khi có tham số $mode
  • Ứng dụng
  • Khuyến cáo
  • Các hàm liên quan

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 $modeCOUNT_RECURSIVEthì 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

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

 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

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ó.

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

Hàm count() trong PHP

Nội Dung

  • 1. Hàm count() trong PHP
  • 2. Cú pháp của hàm count() trong PHP
  • 3. Ví dụ về hàm count() trong PHP

Hàm count() trong PHP được sử dụng để đếm phần tử trong mảng. Không chỉ là với mảng mà hàm count() cũng có thể đếm được số lượng thuộc tính trong một đối tượng hay là lấy ra giá trị nào đó trong một đối tượng có thể đếm được. Hàm count() sẽ đếm và trả về số nguyên là số phần tử trong mảng khi được sử dụng với một mảng. Hàm có thể trả về 0 cho biến đã được đặt thành một mảng trống. Nếu sử dụng với một đối tượng Countable thì hàm sẽ trả về giá trị trả về của phương thức. Ngoài ra, đối với biến không được đặt, hàm cũng trả về 0. Thậm chí 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. Hàm count() được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp của hàm count() trong PHP

Ta có cú pháp của hàm count() trong PHP là :

count($array, $mode)

Trong đó :

  • $array : là mảng hay đối tượng truyền vào để đếm. Tham số này là bắt buộc trong hàm
  • $mode : là tham số tùy chọn trong hàm. Nó được sử dụng để đặt chế độ đếm của hàm count() . Mặc định là hằng số COUNT_NORMAL (có giá trị là 0). Nếu $mode là hằng số COUNT_RECURSIVE (có giá trị là 1) thì hàm count() có thể đếm tất cả các phần tử trong mảng một cách đệ quy phù hợp với mảng nhiều chiều.

Như mình đã nói thì 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.

Lưu ý

Hàm count() có thể phát hiện đệ quy để tránh một vòng lặp vô hạn, nhưng sẽ ném ra một E_WARNING mỗi khi nó xảy ra (trong trường hợp mảng chứa chính nó nhiều lần) và trả về một số lượng cao hơn dự kiến.

Ví dụ : đếm và trả về số lượng phần tử trong một mảng

Kết quả

5

3. Ví dụ về hàm count() trong PHP

Ví dụ 1: đếm đệ quy một mảng

array
   (
   "60",
   "90"
   ),
   "Java"=>array
   (
   "X3",
   "X5"
   ),
   "HTML"=>array
   (
   "CSS"
   )
   ); 
echo "Đếm bình thường: " . count($cars)."
"; echo "Đếm một cách đệ quy: " . count($cars,1); ?>

Kết quả

Đếm bình thường: 3
Đếm theo cách đệ quy: 8

Ta cũng có thể thay 1 bằng COUNT_RECURSIVE để đếm một cách đệ quy

Ví dụ 2: sử dụng hàm count() với Countable object

_myCount;
    }

}

$countable = new CountMe();
$value = count($countable);
?>

Kết quả

100

Trong các trường hợp ta cần triển khai một vòng lặp, có thể sử dụng count() thì 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

Nếu ta 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;
}