array_multisort实现PHP多维数组排序示例讲解

array_multisort 函数是 PHP 的一个数组排序函数,可以针对多个数组进行排序,并且支持多维数组的排序。

array_multisort 函数是 PHP 的一个数组排序函数,可以针对多个数组进行排序,并且支持多维数组的排序。

本示例我们将要创建一个用于排序的多维数组,并使用 array_multisort 函数进行排序,比较两种排序方式,用以介绍如何使用这个函数。

创建多维数组并排序

下面的示例代码将创建一个包含 5 个子数组的多维数组。每个子数组都包含一个字符串和一个数字,这些数组将被按照字符串值、数字值进行排序。 首先,我们创建了 $arr 数组,并使用 rand() 函数为数字值生成了随机值。 接着向每个子数组中添加了一个字符串和数字元素。

// 创建多维数组
$arr = [
    ['string' => 'apple', 'num' => rand(1, 999)],
    ['string' => 'banana', 'num' => rand(1, 999)],
    ['string' => 'peach', 'num' => rand(1, 999)],
    ['string' => 'grape', 'num' => rand(1, 999)],
    ['string' => 'orange', 'num' => rand(1, 999)],
];

// 提取数据列
foreach ($arr as $key => $row) {
    $string[$key] = $row['string'];
    $num[$key] = $row['num'];
}

// 执行排序
array_multisort($string, SORT_ASC, $num, SORT_ASC, $arr);

// 打印结果
print_r($arr);

输出结果为:

Array
(
    [0] => Array
        (
            [string] => apple
            [num] => 144
        )

    [1] => Array
        (
            [string] => banana
            [num] => 74
        )

    [2] => Array
        (
            [string] => grape
            [num] => 232
        )

    [3] => Array
        (
            [string] => orange
            [num] => 532
        )

    [4] => Array
        (
            [string] => peach
            [num] => 935
        )

)

针对多个数组排序

下面的示例代码展示了如何使用 array_multisort 排序多个数组。我们将创建 $arr1、$arr2 和 $arr3 三个数组,然后将这三个数组分别排序。 接着我们仿照上述步骤, 向每个子数组中添加一个字符串和数字元素,最后使用 array_multisort 函数进行排序。

// 创建多维数组
$arr1 = [3, 2, 1];
$arr2 = ['c', 'b', 'a'];
$arr3 = [7, 8, 9];

// 执行排序
array_multisort($arr1, SORT_ASC, $arr2, SORT_DESC, $arr3);

// 打印结果
print_r($arr1);
print_r($arr2);
print_r($arr3);

输出结果为:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array
(
    [0] => a
    [1] => b
    [2] => c
)
Array
(
    [0] => 9
    [1] => 8
    [2] => 7
)

以上就是关于 array_multisort 函数使用的示例攻略,希望对您有所帮助!

本文标题为:array_multisort实现PHP多维数组排序示例讲解

基础教程推荐