PHP按键排序数组 [英] PHP sort array by key

查看:84
本文介绍了PHP按键排序数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个输出:

Array
(
[0] => Array
    (
        [id] => 4
        [username] => bla1
    )

[1] => Array
    (
        [id] => 5
        [username] => bla2
    )

[2] => Array
    (
        [id] => 6
        [username] => bla3
    )

)

如何通过用户名"对外部数组中的3个数组进行排序?

How can i sort the 3 arrays inside this outside array by 'username'?

这是我尝试过的:

if($this->needOrder) {
   $sorted = [];

   foreach($files as $file) {
     $sorted[] = asort($tableFile);
   }

   return $sorted;
 }

$files具有上面代码的内容. asort()仅用于测试是否有效. 但是我的回报是:

$files has the content of the ^above code. The asort() is only for testing if it works. But my return is:

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
    )

)

这篇关于PHP按键排序数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆