首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP对关联数组的值进行排序?

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

Stack Overflow用户
提问于 2016-03-28 03:53:25
回答 3查看 5K关注 0票数 3

我有这样一个关联数组。

代码语言:javascript
复制
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
        )

我想按name分类,我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-28 04:42:34

乌斯波特()函数是您要寻找的。

代码语言:javascript
复制
uasort($data, function($a, $b) { return strcasecmp($a['name'], $b['name']); });

您应该查看、usort()、uksort()文档,以了解用户定义的比较函数是如何工作的。

票数 6
EN

Stack Overflow用户

发布于 2016-03-28 04:03:58

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

这是我的分类页。如果希望保留数组键,可以执行以下操作:

代码语言:javascript
复制
uasort($myArray, function ($a, $b) {
    if ($a['name'] == $b['name']) return 0;
    return ($a['name'] < $b['name']) ? -1 : 1;
});

将比较切换为更改或排序。如果经常使用这种类型,则可能希望将其提取到自己的函数中,而不是使用闭包。就我个人而言,一个类型的闭包非常短,我喜欢将它内联,这样我就可以准确地看到发生了什么,而不需要跳到另一个代码。

票数 2
EN

Stack Overflow用户

发布于 2016-03-28 03:59:12

尝尝这个

代码语言:javascript
复制
$nameA = array();
foreach ($inventory as $key => $row)
{
    $nameA[$key] = $row['name'];
}
array_multisort($nameA, SORT_ASC, $inventory);

这里

$inventory

是你的主数组

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36255715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档