- ベストアンサー
配列操作とは?出現頻度を比較する方法
- 長文のテキストから、単語単位、かつその出現回数を配列にまとめる方法を教えてください。
- 2つのテキストから単語単位、出現回数を配列にまとめ、出現頻度を比較する方法を教えてください。
- 出現頻度が高い順に配列を表示し、2つの配列を比較して同じ単語のみを表示させる方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 訂正です。「出現頻度の多い順」ということで、降順ソートをするのを忘れてしまいました。ゴメンナサイ 試しに、$resultを適当にバラバラにしてみますね。 $result=array ( "テクニック" => 18 , "クランク" => 32, "ため" => 15, "表示" => 25, "対策" => 61,"て" => 24 ,"サイト" => 24,"運営" => 21 , "徹底" => 14 ); $result2=array ( "教えて" => 61, "PHP" => 32, "運営" => 25, "CGI" => 24 ,"html" => 24 ,"桜" => 21 ,"表示" => 18, "PEAR" => 15, "http" => 14 ); //ここで、$resultを出現頻度の高い順にソート arsort($result); //$resultを出力 foreach($result as $k=>$v){ echo $k.$v; //$resultのキーが$result2にそのキーが存在すれば、出力 if(isset($result2[$k]) && $result2[$k]!=""){ echo '='.$k.$result2[$k]; } //終了 echo '<br>'; }
その他の回答 (1)
- maenet1972
- ベストアンサー率68% (26/38)
まず、メインとなる$resultを出力し、$resultのキーと$result2のキーが一致した場合だけ、右側を表示させます。 単純なソースを載せておきますので、ご参考までに $result=array ( "対策" => 61, "クランク" => 32, "表示" => 25, "て" => 24 ,"サイト" => 24,"運営" => 21 ,"テクニック" => 18 ,"ため" => 15, "徹底" => 14 ); $result2=array ( "教えて" => 61, "PHP" => 32, "運営" => 25, "CGI" => 24 ,"html" => 24 ,"桜" => 21 ,"表示" => 18, "PEAR" => 15, "http" => 14 ); //まず、$resultを出力 foreach($result as $k=>$v){ echo $k.$v; //$resultのキーが$result2にそのキーが存在すれば、出力 if(isset($result2[$k]) && $result2[$k]!=""){ echo '='.$k.$result2[$k]; } //終了 echo '<br>'; }
お礼
maenet1972さま はじめまして、こんばんは! 質問投稿後、早速の回答をありがとうございます! ソースまで記載いただき感謝です。もっと複雑なソースになると考えていたので、とても勉強になりました。有難う御座いました!