第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將數(shù)組加在一起并顯示每個字母使用了多少次

將數(shù)組加在一起并顯示每個字母使用了多少次

PHP
臨摹微笑 2023-09-08 10:33:39
幾個小時以來我一直在嘗試自己尋找解決方案。嘗試不同的方法。我需要將一列中的所有名稱加在一起,并找出每個字母出現(xiàn)的次數(shù)。這就是我陷入困境的地方,它只獲取列中的名字并顯示有關(guān)它的信息,但我需要將它們?nèi)糠旁谝黄?text=mysqli_query($conn,"SELECT test from tabletest");//Fetch result $text=mysqli_fetch_assoc($text);$my_id=$text['test'];$text = str_replace(' ', '', $text );$arrLetters = str_split($text['test']);$countLetters = count($arrLetters);$letters = [];foreach($arrLetters as $letter){    if(isset($letters[$letter])){        $letters[$letter] += 1;    } else {        $letters[$letter] = 1;      }}foreach($letters as $letter => $total){    echo $letter.": ".$total.": ".round(($total/$countLetters*100),2)."%\n";} 
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

如果你想計算字符串?dāng)?shù)組中每個字母的頻率,你可以使用mb_str_split()array_count_values()

例如,我的數(shù)據(jù)庫中有兩行:


foo bar

this is a test of emoji ??

考慮以下代碼。在這里,我使用mb_str_split()然后使用另一個foreach循環(huán)將循環(huán)內(nèi)的每個值拆分為單獨的字符,然后array_count_values($arrLetters)計算每個字符的頻率。


$stmt = $conn->prepare("SELECT test from tabletest");

$stmt->execute();

$result = $stmt->get_result();


foreach ($result as $row) {

? ? // split the string into characters

? ? $arrLetters = mb_str_split($row['test']);

? ? $countLetters = count($arrLetters);

? ? // count frequence of each character and immediately display results

? ? foreach (array_count_values($arrLetters) as $letter => $total) {

? ? ? ? echo $letter.": ".$total.": ".round(($total / $countLetters * 100), 2)."%\n";

? ? }

? ? echo '--------------'.PHP_EOL;

}

它將產(chǎn)生以下輸出:


f: 1: 14.29%

o: 2: 28.57%

?: 1: 14.29%

b: 1: 14.29%

a: 1: 14.29%

r: 1: 14.29%

--------------

t: 3: 12%

h: 1: 4%

i: 3: 12%

s: 3: 12%

?: 6: 24%

a: 1: 4%

e: 2: 8%

o: 2: 8%

f: 1: 4%

m: 1: 4%

j: 1: 4%

??: 1: 4%

--------------

如果您想將所有行的頻率作為一個結(jié)果,那么您可以將其全部分解為一個字符串,并且無需循環(huán)即可完成。


$stmt = $conn->prepare("SELECT test from tabletest");

$stmt->execute();

$result = $stmt->get_result();


// Implode it all into a single string

$text = implode(array_column($result->fetch_all(MYSQLI_NUM), 0));


// split the string into characters

$arrLetters = mb_str_split($text);

$countLetters = count($arrLetters);

// count frequence of each character and immediately display results

foreach (array_count_values($arrLetters) as $letter => $total) {

? ? echo $letter.": ".$total.": ".round(($total / $countLetters * 100), 2)."%\n";

}

這會給你這個輸出:


f: 2: 6.25%

o: 4: 12.5%

?: 7: 21.88%

b: 1: 3.13%

a: 2: 6.25%

r: 1: 3.13%

t: 3: 9.38%

h: 1: 3.13%

i: 3: 9.38%

s: 3: 9.38%

e: 2: 6.25%

m: 1: 3.13%

j: 1: 3.13%

??: 1: 3.13%


查看完整回答
反對 回復(fù) 2023-09-08
  • 1 回答
  • 0 關(guān)注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號