1

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

我有一个数组,我可以根据特定键的值对 az 进行排序,但不能在反向 za 中排序。

我想按 ProjectName (za) 排序的数组示例:

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

我希望这是有道理的

4

1 回答 1

3

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

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

usort($yourArray, "cmp");

print_r($yourArray);

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

function name_sort($x, $y) 
{
    return strcasecmp($y['ProjectName'], $x['ProjectName']); 
}
于 2013-11-03T21:40:56.153 回答