反向字母排序多维 PHP 数组维护键


Reverse alphabetic sort multidimensional PHP array maintain key

我快死在这里了,任何帮助都会很棒。

我有一个数组,我可以根据特定键的值对 a-z 进行排序,但不能反向 z-a 排序。

我想按项目名称 (z-a) 排序的数组示例:

Array
( 
 [0] => Array
    (
        [count] => 1
        [ProjectName] => bbcjob
        [Postcode] => 53.471922,-2.2996078
        [Sector] => Public
    )
[1] => Array
    (
        [count] => 1
        [ProjectName] => commercial enterprise zone
        [Postcode] => 53.3742081,-1.4926439
        [Sector] => Public
    )
[2] => Array
    (
        [count] => 1
        [ProjectName] => Monkeys eat chips
        [Postcode] => 51.5141492,-0.2271227
        [Sector] => Private

期望的结果是维护整个数组键 -> 值结构,但顺序如下:

猴子吃薯条
商业企业专区
英国广播公司工作

我希望这是有道理的

这是 usort 的一项工作,它允许您定义一个函数来进行比较,然后基于该函数对数组进行排序。

function cmp($a, $b)
{
    return strcmp($b["ProjectName"], $a["ProjectName"]);
}
usort($yourArray, "cmp");
print_r($yourArray);

编辑:根据您的评论,您应该反转函数中的$x$y,以反转执行排序的顺序。

function name_sort($x, $y) 
{
    return strcasecmp($y['ProjectName'], $x['ProjectName']); 
}