我快死在这里了,任何帮助都会很棒。
我有一个数组,我可以根据特定键的值对 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']);
}