在PHP中,array是一種十分常見的數據類型、用途廣泛的數據結構。在實際應用中,我們往往需要對array中的元素進行統計。下面就讓我們來了解一下如何使用PHP的數組計數功能吧!
在PHP中,我們可以使用array_count_values()函數來統計一個數組中各個元素出現的次數。比如,我們有一個數組$fruits,其中包含了一些水果的名稱:
$fruits = array('apple', 'orange', 'banana', 'pear', 'apple', 'banana');現在,我們要統計出每個水果在數組中出現的次數。我們可以使用array_count_values()函數來實現:
$count_fruits = array_count_values($fruits); print_r($count_fruits);輸出結果為:
Array ( [apple] =>2 [orange] =>1 [banana] =>2 [pear] =>1 )可以看到,$count_fruits數組中保存了每個水果在$fruits數組中出現的次數。其中,鍵名為水果的名稱,而鍵值為該水果在數組中出現的次數。比如,'apple'這個水果在數組中共出現了2次。 我們也可以在統計時過濾掉數組中的某些元素,比如不統計'orange'這個水果在數組中出現的次數。在這種情況下,我們可以使用array_filter()函數來實現:
$count_fruits = array_count_values(array_filter($fruits, function($fruit) { return $fruit != 'orange'; })); print_r($count_fruits);輸出結果為:
Array ( [apple] =>2 [banana] =>2 [pear] =>1 )可以看到,此時$count_fruits數組中已經不包含鍵名為'orange'的元素,因為我們在統計前使用array_filter()函數將它從$fruits數組中過濾掉了。 除了使用array_count_values()函數統計數組元素出現次數,我們還可以使用PHP的內置函數array_reduce()來完成同樣的功能:
$count_fruits = array_reduce($fruits, function($carry, $fruit) { if(isset($carry[$fruit])) { $carry[$fruit]++; } else { $carry[$fruit] = 1; } return $carry; }, array()); print_r($count_fruits);上面的代碼中,我們使用了array_reduce()函數將$fruits數組中的每個元素和一個累加器變量$carry進行累加。如果$carry中已經有了當前元素$fruit,則將其出現次數加1;否則將其出現次數初始化為1。最后返回累加器$carry即可。輸出結果和上面的使用array_count_values()函數的代碼一樣。 以上是PHP數組計數的一些基本用法。當然,實際應用中還有更多的細節和注意事項需要我們去掌握,但掌握了這些基本的操作,我們就可以很方便地處理數組計數的需求了。
上一篇css3 新布局
下一篇ajax 取得后臺返回值