【问题标题】:How to get popular keywords in an array如何获取数组中的热门关键字
【发布时间】:2015-11-29 04:42:09
【问题描述】:

我有一个包含我网站的所有关键字的数组,如下所示:

Array
(
    [0] => keyword1
    [1] => keyword1
    [2] => keyword1
    [3] => keyword1
    [4] => keyword1
    [5] => keyword1
    [6] => keyword1
    [7] => keyword1
    [8] => keyword1
    [9] => keyword1
    [10] => keyword2
    [11] => keyword2
    [12] => keyword2
    [13] => keyword3
    [14] => keyword3
    [15] => keyword3
    [16] => keyword3
    [17] => keyword3
    [18] => keyword3
    [19] => keyword4
    [20] => keyword4
    [21] => keyword4
    [22] => keyword4
    [23] => keyword4
    [24] => keyword5
)

我想找到流行的关键字,创建一个像这样的数组:

Array
(
    [0] => Array
        (
            [0] => keyword1
            [count] => 10
        )

    [1] => Array
        (
            [0] => keyword2
            [count] => 3
        )

    [2] => Array
        (
            [0] => keyword3
            [count] => 6
        )

    [3] => Array
        (
            [0] => keyword4
            [count] => 5
        )

    [4] => Array
        (
            [0] => keyword5
            [count] => 1
        )

)

我还想按关键字计数排序并删除重复值并将每个关键字设置在子数组中。

【问题讨论】:

  • 为了您在 PHP 上的下一个问题,请尝试在 Google 上输入您的意图,然后输入“php”这个词,我发誓您不会后悔的,有很多以官方开头的材料涵盖用于数组目的的每个捆绑函数的文档。如果您根本找不到答案,那么您可以考虑在 SO 询问,因为之前已经进行了研究工作。

标签: php arrays sorting


【解决方案1】:

array_count_values 将像这样输出计数

Array
(
    [keyword1] => 10
    [keyword2] => 3
    [keyword3] => 6
    [keyword4] => 5
    [keyword5] => 1
)

但是对于您想要的输出,您需要使用foreach

Demo

$arra = Array
(
    0 => "keyword1",
    1 => "keyword1",
    2 => "keyword1",
    3 => "keyword1",
    4 => "keyword1",
    5 => "keyword1",
    6 => "keyword1",
    7 => "keyword1",
    8 => "keyword1",
    9 => "keyword1",
    10 => "keyword2",
    11 => "keyword2",
    12 => "keyword2",
    13 => "keyword3",
    14 => "keyword3",
    15 => "keyword3",
    16 => "keyword3",
    17 => "keyword3",
    18 => "keyword3",
    19 => "keyword4",
    20 => "keyword4",
    21 => "keyword4",
    22 => "keyword4",
    23 => "keyword4",
    24 => "keyword5"
);

$newarray = array_count_values($arra);
$output = array();
foreach($newarray as $key=>$val) {
    $output[] = array("0"=>$key, "count"=>$val);
}

echo '<pre>';print_r($output);echo '</pre>';

输出:

Array
(
    [0] => Array
        (
            [0] => keyword1
            [count] => 10
        )

    [1] => Array
        (
            [0] => keyword2
            [count] => 3
        )

    [2] => Array
        (
            [0] => keyword3
            [count] => 6
        )

    [3] => Array
        (
            [0] => keyword4
            [count] => 5
        )

    [4] => Array
        (
            [0] => keyword5
            [count] => 1
        )

)

【讨论】:

    【解决方案2】:

    只需使用array_count_values()

    【讨论】:

      【解决方案3】:
      $test=your array; //store your array in a variable
      $val = array_count_values($test); //count your array values
      print_r($val);
      

      【讨论】:

        【解决方案4】:

        你可以使用这个功能

          <?php
        $items = Array(
                     'keyword5','keyword5','keyword5','keyword5','keyword1','keyword1','keyword1','keyword2'
                );
        
        $occurences = array_count_values($items);
        print_r($occurences);
        
        ?>
        

        它会打印出类似值的计数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-08-23
          • 1970-01-01
          • 2018-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-05
          相关资源
          最近更新 更多