PHP 按键对数组进行排序


PHP sort array by key

我有这个输出:

Array
(
[0] => Array
    (
        [id] => 4
        [username] => bla1
    )
[1] => Array
    (
        [id] => 5
        [username] => bla2
    )
[2] => Array
    (
        [id] => 6
        [username] => bla3
    )
)

如何按"用户名"对外部数组内的 3 个数组进行排序?

这是我尝试过的:

if($this->needOrder) {
   $sorted = [];
   foreach($files as $file) {
     $sorted[] = asort($tableFile);
   }
   return $sorted;
 }

$files具有 ^ 上述代码的内容。该asort()仅用于测试它是否有效。但我的回报是:

Array
(
  [0] => 1
  [1] => 1
  [2] => 1
)

使用 usort()

$arr = Array(
    array('id' => 4,'username' => 'bla2'),
    array('id' => 5,'username' => 'bla3'),
    array('id' => 6,'username' => 'bla1'),
);
function custom_sort($a, $b)
{
    return strnatcmp($a['username'], $b['username']);
}
usort($arr, "custom_sort");
print '<pre>';
print_r($arr);
print '</pre>';

输出:

Array
(
[0] => Array
    (
        [id] => 4
        [username] => bla1
    )
[1] => Array
    (
        [id] => 4
        [username] => bla2
    )
[2] => Array
    (
        [id] => 4
        [username] => bla3
    )
)