[英]Getting the number of different values in a PHP array
我需要知道數組中不同值的數量。 例如,如果包含(5,5,5),那么我應該得到1。如果包含(4,4,2,2),我應該得到2。如果(5,5,5,5,2,2,1 ,5)然后3。
有沒有可以直接在PHP中實現的功能?
echo count(array_unique($arr));
您可以使用array_unique
返回數組的唯一元素(結果也是數組類型),然后count
結果
實現此目的的兩種簡單方法:
$diff_count = count(array_unique($input_arr));
$diff_count = count(array_flip($input_arr));
<-推薦(性能) array_unique() :
從數組中刪除重復的值-您可以添加adittional標志,例如:
array_flip() :
在數組中交換所有鍵及其關聯的值-因此重復的鍵將被覆蓋,您將獲得一個以唯一值作為鍵的最終數組。
翻轉兩次將產生一個具有唯一值和原始輸入數組中最高鍵的數組。
更多閱讀 :
基准測試 :
由於array_flip僅使用O(n)的速度快得多-使用10,000個數字的數組作為輸入:
有沒有可以直接在PHP中實現的功能?
最接近的是array_unique()
但這是一個簡單的函數,可以實現您所需要的:
$arr = array(5,5,5,5,2,2,1,5);
function array_diff_values( $array ) {
return count( array_unique($array) );
}
$count = array_diff_values( $arr );
$count
結果是3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.