ตัวอย่างโค้ด :

1
2
3
4
<?php
$array = array("hi", "hi", "dog");
print_r(array_count_values($array));
?>

ผลลัพธ์ :

Array
(
    [hi] => 2
    [dog] => 1
)

ฟังก์ชั่น array_count_values นี้ใช้สำหรับนับค่าที่เหมือนกันใน Array ว่าเหมือนกันกี่จำนวน เช่นในตัวอย่างที่ผมแสดงไว้ ผลลัพธ์ที่ได้ hi ซ้ำกัน 2 ครั้ง ส่วน dog ปรากฎใน Array แค่ 1 ครั้ง เมื่อสังเกตุแล้วจะเห็นว่า ฟังก์ชั่นนี้ คืนค่ากลับมาเป็น Array และนำเอา value ใน Array ที่เป็นพารามิเตอร์ มาเป็น key ใน Array ที่เป็น output และ จำนวนที่นับได้ เป็น value ของ key นั้นๆ

ลองดูอีกสักตัวอย่าง :

1
2
3
4
<?php
$array = array(  1 , "cat", "fish", "dog" , "cow" , 1 ,"cow" );
print_r(array_count_values($array));
?>

ผลลัพธ์ :

Array
(
    [1] => 2
    [cat] => 1
    [fish] => 1
    [dog] => 1
    [cow] => 2
)

แถมในกรณีที่ต้องการนับ array 2 มิติ เนื่องจากฟังก์ชั่น array_count_values จะนับได้เฉพาะ array 1 มิติ เท่านั้น เราก็เลยต้องลงมือเขียนโค้ดเพิ่มเติมเองนิดหน่อย โดยการรวมอะเรย์ทั้งหมดเข้าด้วยกัน แล้วแตกอะเรย์ออกมาใหม่ ให้เป็นอะเรย์ 1 มิติ ดูโค้ดครับ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$value = array (
array ( 1 => 0, 2 => '2009-06-09,10', 3 => '2009-06-09,11' ),
array ( 1 => 0, 2 => '2009-06-09,10', 3 => '2009-06-09,11' ),
array ( 1 => 0, 2 => '2009-06-09,11', ),
array ( 1 => 0, 2 => '2009-06-09,10', 3 => '2009-06-09,11' )
);
//+ ทำให้เป็น array 1 มิติเสียก่อน
foreach( $value as $value ):
 
	$im_value[] = implode('|',$value );
 
endforeach;
 
$string = implode('|',$im_value);
 
$odi_array = explode('|',$string);
//- ทำให้เป็น array 1 มิติเสียก่อน
 
print_r( array_count_values($odi_array) )
?>

ผลลัพธ์

Array
(
    [0] => 4
    [2009-06-09,10] => 3
    [2009-06-09,11] => 4
)

แหล่งข้อมูลเพิ่มเติม http://th2.php.net/manual/en/function.array-count-values.php :