數(shù)據(jù)表里面的字段 content 存儲了一個(gè)以逗號分割的字符串,最大有20個(gè)數(shù),最大數(shù)字為40。比如3,24,33,40類似字樣的數(shù)字序列。其實(shí)就是一個(gè)保存了多項(xiàng)投票結(jié)果的字段啦。現(xiàn)在需要統(tǒng)計(jì)每個(gè)數(shù)字的個(gè)數(shù),也就是每個(gè)投票項(xiàng)有多少人投了,并排序
解決思路:
1. 首先從數(shù)據(jù)庫的congtent字段讀取數(shù)據(jù),并把它們合并成一個(gè)字符串,代碼如下:
- <?php
- while($myrow = $connector -> fetch_array($result))
- {
- //$r[] = explode(",", $myrow["content"]);
- $str .= $myrow["content"].',';
- }
- $arr_str = substr($str, 0, -1);
- ?>
由于最后一個(gè)數(shù)后面有逗號,所以要對字符串進(jìn)行截取。
2. 將字符串按逗號分割成數(shù)組,代碼如下:
$r = explode(",", $arr_str);
3. 用 array_count_values() 統(tǒng)計(jì)一維數(shù)組的元素個(gè)數(shù)
由于array_count_values()貌似不能直接對二維數(shù)組的元素進(jìn)行個(gè)數(shù)統(tǒng)計(jì),所以進(jìn)行了上面的兩個(gè)步驟,得到一個(gè)一維數(shù)組。
array_count_values() 函數(shù)用于統(tǒng)計(jì)數(shù)組中所有值出現(xiàn)的次數(shù)。返回一個(gè)數(shù)組,其元素的鍵名是原數(shù)組的值,鍵值是該值在原數(shù)組中出現(xiàn)的次數(shù),代碼如下:
$rs = array_count_values($r);
4. 排序,代碼如下:
- asort($rs);
- echo '<pre>';
- print_r($rs);
- echo '</pre>';
新聞熱點(diǎn)
疑難解答