首页 > 解决方案 > 根据值对 PHP 数组进行排序

问题描述

当我这样做的时候

$result = array_count_values(Visitor::all()->pluck('device')->toArray());
$result = asort($result,SORT_NATURAL);
return $result;

我不断得到

响应内容必须是实现 __toString() 的字符串或对象,给出“布尔值”。

在此处输入图像描述

这是一个数组

array_count_values(Visitor::all()->pluck('device')->toArray())

它返回

{
    iPhone: 202,
    Windows NT 6.1: 2428,
    Windows NT 10.0: 2588,
    Macintosh: 1397,
    iPad: 12,
    Windows NT 6.2: 50,
    Windows NT 6.3: 90,
    X11: 442,
    compatible: 1813,
    Windows NT 5.1: 97,
    Linux: 227,
    Windows: 86,
    TweetmemeBot/4.0: 8,
    ) { :: 14,
    Windows NT 6.0: 7,
    User-Agent,Mozilla/5.0 : 1,
    KHTML, like Gecko: 6,
    Unknown: 11,
    Android: 1,
    Android 7.1.1: 1,
    Android 7.1.2: 2,
    Windows NT x.y: 2,
    Windows NT 6.1) AppleWebKit/537.36 : 7,
    Windows NT 5.0: 1,
    Windows NT 8.0: 1,
    web crawler :: robots.txt exclude elefent: 1,
    Windows NT: 1,
    Linux 4.4.0-116-generic: 1
}

我想在 desc 基础上对它们进行排序values

请帮忙

标签: php

解决方案


asort()返回一个布尔值,指示操作是否成功。你想要做的是:

$result = array_count_values(Visitor::all()->pluck('device')->toArray());
asort($result,SORT_NATURAL);

return $result;

有关更多信息,请参阅文档


推荐阅读