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

时间:2013-11-03 21:36:49

标签: php arrays sorting multidimensional-array

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

我有一个数组,我可以按特定键的值对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

我希望这是有道理的

1 个答案:

答案 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']); 
}