Php 对事务列表进行排序,以找到前10个最受欢迎的事务

Php 对事务列表进行排序,以找到前10个最受欢迎的事务,php,sorting,Php,Sorting,好的,我有一个数组,布局如下(仅显示第一项): 在本例中,有600个事务。我想浏览一下这个列表,找到10个最流行的(比如,最常出现的)并显示它们。我怎样才能做到这一点?我不擅长排序-但我编写了以下代码来添加它们: foreach($transactions as $t) { if(isset($popular_dataset[$t['description']])) { $popular_dataset[$t['description']]++;

好的,我有一个数组,布局如下(仅显示第一项):

在本例中,有600个事务。我想浏览一下这个列表,找到10个最流行的(比如,最常出现的)并显示它们。我怎样才能做到这一点?我不擅长排序-但我编写了以下代码来添加它们:

foreach($transactions as $t) {
        if(isset($popular_dataset[$t['description']])) {
            $popular_dataset[$t['description']]++;
        } else {
            $popular_dataset[$t['description']] = 1;
        }
    }

这给了我一个数组,我可以查看最高的数组,但我不确定如何从这里开始。任何建议都会很好-我走的是正确的道路还是有更简单的方法?

我会将
描述提取到一个数组中并计算值,然后降序排序并将前十个值切片:

$popular_dataset = array_count_values(array_column($transactions, 'description'));
arsort($popular_dataset);
$top_ten = array_slice($popular_dataset, 0, 10);
$popular_dataset = array_count_values(array_column($transactions, 'description'));
arsort($popular_dataset);
$top_ten = array_slice($popular_dataset, 0, 10);