我在这里死了,任何帮助都会很棒。
我有一个数组,我可以按特定键的值对a-z进行排序,但不能反向排序z-a。
我的数组样本,我想按ProjectName(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
期望的结果是维护整个数组键 - >价值结构,但订单:
猴子吃薯条 商业企业区域 bbcjob
我希望这是有道理的
答案 0 :(得分:2)
这是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']);
}