在上一篇文章中我們介紹了統計字串中字元出現次數的方法,感興趣的可以點擊連結查閱→《PHP字串學習之統計字元的出現次數》。既然介紹了字元的次數的統計方法,我們也來看看數組,這次帶大家了解一下統計數組元素出現次數的方法,有需要的可以參考參考。
如標題所說的,本文的主題是計算陣列元素出現次數,然後比較出現次數,找出出現次數(重複率)最多的元素,將它的值和出現次數進行輸出。
我們來看看下面一個例子。
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $array = array(7,"hello",7,8,"world",9,10,10,"hello",10); $frequency = array_count_values($array); // 统计数组中所有值出现的次数 echo "每个元素对应的出现次数:"; var_dump($frequency); echo "按照键值进行降序排序:"; arsort($frequency); // 按照键值对数组进行降序排序 var_dump($frequency); $max_number = reset($frequency);//出现最多的次数值 $more_value = key($frequency);//出现次数最多的值 echo "数组中出现次数最多的值为:{$more_value},总共出现{$max_number}次"; ?>
我們來分析上述程式碼,介紹一下各關鍵函數的作用。
array_count_values($array)
函數可以對$array陣列中的所有值進行計數,統計每個陣列元素的出現次數;會傳回一個關聯數組$frequency
,其元素鍵名是原始數組的值,鍵值是該值在原始數組中出現的次數。
這個傳回的關聯數組$frequency
中的元素順序是參考原始數組$array的元素順序,因此元素是零散排列的,沒有規律。因此使用arsort($frequency)
來依照鍵值對陣列進行降序排序,這樣鍵值(出現次數)最大的元素會在陣列的開頭。
然後我們就可以使用reset($frequency)
來將陣列內部指標指向$frequency陣列的第一個元素(該元素就是$ frequency數組目前的元素了),並傳回該元素,這樣就取得到原始數組中重複率最高的元素的出現次數。
最後使用key($frequency)
就可以取得$frequency陣列目前元素的鍵名,也就是原始陣列的值。
看看輸出結果為:
#可以看出$arrays
在陣列中,重複率最高(出現次數最多)的元素為數字“10”,此元素總共出現了3次。
好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →php影片教學
最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!
以上是PHP數組學習找出重複率最高的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!