Php -按键排序关联数组


Php - Sort associative array by key

我知道以前有人问过这个问题,但不是在这个上下文中(OOP):

class XYZ {
    public function index() {
        $array = [
            [
                'id' => 1,
                'name' => 'Alpha'
            ],
            [
                'id' => 2,
                'name' => 'Beta'
            ],
            [
                'id' => 3,
                'name' => 'Gamma'
            ]
        ];
        $newArray = usort($array, 'modify');
        return $newArray;
    }
    public function modify($a, $b) {
        return $b['name'] - $a['name'];
    }
}

这个indexAction返回一个空数组,我不知道为什么…

有谁能帮我一下吗?

感谢和问候!

ksort -按键对数组进行排序

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

按键对数组进行排序,维护键到数据的相关性。这主要用于关联数组。

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val'n";
}
?>
上面的示例将输出:

a =橙色B =香蕉C =苹果D =柠檬

更多信息:http://php.net/manual/en/function.ksort.php

在这里的usort函数中第二个参数由两个值组成第一个是ClassName,另一个是functionName所以第二个参数看起来像

usort($array,['ClassName','functionName']);

在你的例子中,它就像

usort($array,['XYZ','modify']);

因为usort返回布尔值http://php.net/manual/en/function.usort.php。您希望返回修改后的变量$array