統計二維數組里元素的個數


記錄一下一個問題的解決,里面涉及幾個函數的用法,當作復習啦。

先說明一下問題。數據表里面的字段 content 存儲了一個以逗號分割的字符串,最大有20個數,最大數字為40。比如3,24,33,40類似字樣的數字序列。其實就是一個保存了多項投票結果的字段啦。現在需要統計每個數字的個數,也就是每個投票項有多少人投了,並排序。

我的思路是這樣的。

1. 首先從數據庫的congtent字段讀取數據,並把它們合並成一個字符串。
1    <?php
2        while($myrow = $connector -> fetch_array($result))
3        {
4            //$r[] = explode(",", $myrow["content"]);
5            $str .= $myrow["content"].',';
6        }
7         
8        $arr_str = substr($str, 0, -1);
9    ?>

由於最后一個數后面有逗號,所以要對字符串進行截取。

2. 將字符串按逗號分割成數組。
1    $r = explode(",", $arr_str);

3. 用 array_count_values() 統計一維數組的元素個數

由於array_count_values()貌似不能直接對二維數組的元素進行個數統計,所以進行了上面的兩個步驟,得到一個一維數組。

array_count_values() 函數用於統計數組中所有值出現的次數。返回一個數組,其元素的鍵名是原數組的值,鍵值是該值在原數組中出現的次數。
1    $rs = array_count_values($r);

4. 排序

排序很簡單了,但要保持鍵值,可以使用自帶的asort()函數。
1    asort($rs);
2     
3    echo '<pre>';
4    print_r($rs);
5    echo '</pre>';

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM