如何使用PHP按其值对关联数组进行排序?

4
我有一个这样的关联数组。
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Admin
            [email] => admin@admin.com
            [group] => Admin
            [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=1
        )

    [1] => Array
        (
            [id] => 2
            [name] => rochellecanale
            [email] => rochellecanale11@gmail.com
            [group] => 
            [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=2
        )

    [2] => Array
        (
            [id] => 3
            [name] => symfony
            [email] => chelle@flax.ph
            [group] => 
            [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=3
        )

    [3] => Array
        (
            [id] => 4
            [name] => jolopeterson
            [email] => jolo@flax.ph
            [group] => 
            [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=4
        )

    [4] => Array
        (
            [id] => 5
            [name] => symfony123
            [email] => symfony123@gmail.com
            [group] => 
            [href] => http://localhost/teradasys/index.php/users/user/user_info?&user_id=5
        )

我想按照名称排序,怎么做呢?


1
这可能是你正在寻找的答案。 - rmondesilva
3个回答

6

uasort() 函数是您所寻找的。

uasort($data, function($a, $b) { return strcasecmp($a['name'], $b['name']); });

你应该查看 usort()uksort() 的文档,以了解用户自定义比较函数的示例。

非常感谢,我已经寻找这个很长一段时间了! - Bullwinkle

2

http://php.net/manual/en/array.sorting.php

这是我用于排序的页面。如果您想保留数组键,可以这样做:
uasort($myArray, function ($a, $b) {
    if ($a['name'] == $b['name']) return 0;
    return ($a['name'] < $b['name']) ? -1 : 1;
});

将比较方式改为更改或排序。如果您经常使用此排序,可能希望将其提取到自己的函数中,而不是使用闭包。个人而言,排序闭包非常简短,我喜欢将其嵌入到代码中,在没有跳转到另一段代码的情况下,可以清楚地看到正在发生的事情。

1
尝试这个。
$nameA = array();
foreach ($inventory as $key => $row)
{
    $nameA[$key] = $row['name'];
}
array_multisort($nameA, SORT_ASC, $inventory);

这里是你的主要数组 $inventory。

好的,谢谢。我还没有检查你上面发布的链接。我会尝试这个。 - Jerielle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接