首页 > 后端开发 > php教程 > 如何在 PHP 中通过一个或多个键对多维数组进行排序?

如何在 PHP 中通过一个或多个键对多维数组进行排序?

DDD
发布: 2025-01-05 12:34:43
原创
916 人浏览过

How can I sort multi-dimensional arrays in PHP by one or more keys?

按值对多维数组进行排序

使用多维数组时,可能需要根据特定键的值对数组进行排序。例如,如果您有一个包含图像列表的数组,您可能希望按日期或大小对它们进行排序。

按单个键排序

按单个键对数组进行排序关键,您可以使用 usort() 函数。该函数有两个参数:要排序的数组和排序函数。排序函数必须接受两个参数,这两个参数代表要比较的两个元素。

例如,假设我们有以下数组,我们想按“order”键的值对其进行排序:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
登录后复制

要对这个数组进行排序,我们可以使用下面的排序函数:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}
登录后复制

然后,我们可以传递这个函数传递给 usort() 函数:

usort($myArray, 'sortByOrder');
登录后复制

排序后,数组将按照“order”键的值进行排序:

Array
(
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )
)
登录后复制

按多个键排序

要按多个键对数组进行排序,可以使用以下方法:

  1. 创建一个比较第一个键的值的排序函数。
  2. 如果第一个键的值相等,则比较第二个键的值。
  3. 继续比较后续键的值,直到找到了差异。

例如,假设我们有以下数组,我们想按“order”键的值对其进行排序,并且然后通过“title”键的值:

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 1
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Free
            [order] => 2
        )

    [3] => Array
        (
            [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb
            [title] => Ready
            [order] => 3
        )
)
登录后复制

要对该数组进行排序,我们可以使用以下排序函数:

以上是如何在 PHP 中通过一个或多个键对多维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板