PHP数组排序由关键(PHP sort array by key)

2019-11-03 13:49发布

我有这样的输出:

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
)

Answer 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
    )

)


文章来源: PHP sort array by key