1
    <?
    echo "Begin Function=";

    echo "<br>";

    $text = "2lyve: this is: 8475978474957845 948594: jfhdhfkd: just the 2lyve:          beginning:";
    function getTrends($text)
    {
        $subject = $text;
        $pattern ='/(\w+:)/Ui';
        preg_match_all($pattern, $subject, $matches);

        foreach($matches[1] as $value)
        {

            print $value."<br>";

        }

    }

    getTrends($text);
    ?>

結果は次のようになります。

Begin Function=

2lyve:

is:

948594:

jfhdhfkd:

2lyve:

beginning:

各結果が返された回数をカウントしてランク付けするにはどうすればよいですか?また、これらの結果をSQLデータベースにインポートするにはどうすればよいですか?

4

2 に答える 2

1

PHPには、実際にはこの目的のための特定の機能があります。

array_count_values

コードを次のように変更できます

<?php
echo "Begin Function=";

echo "<br>";

$text = "2lyve: this is: 8475978474957845 948594: jfhdhfkd: just the 2lyve:          beginning:";
function getTrends($text)
{
    $subject = $text;
    $pattern ='/(\w+:)/Ui';
    preg_match_all($pattern, $subject, $matches);

    $findings = array_count_values($matches[1]);

    foreach($findings as $value=>$occ)
    {
        print $value."<br>";
    }

}

getTrends($text);
?>
于 2013-03-22T20:34:00.880 に答える
0

$map = array();関数の先頭で配列を宣言し、次に

 print $value."<br>";

置く

if(isset($map[$value])) {
    $map[$value]++;
} else {
    $map[$value] = 1;
}
于 2013-03-22T20:29:41.993 に答える