怎样在PHP中对数组进行递归排序?

61次阅读
没有评论

在PHP中对数组进行递归排序,可以使用array_walk_recursive函数来进行操作。在回调函数中,可以使用usort函数来对具体的数组进行排序。

以下是示例代码:

// 定义数组
$myArray = array(
    array('name' => 'John', 'age' => 25),
    array('name' => 'Mary', 'age' => 30),
    array('name' => 'Sam', 'age' => 20)
);

// 定义递归排序函数
function recursiveSort(&$array) {
    if (is_array($array)) {
        usort($array, function($a, $b) {
            return $a['age'] - $b['age'];
        });

        array_walk_recursive($array, 'recursiveSort');
    }
}

// 调用递归排序函数
recursiveSort($myArray);

// 输出排序后的结果
print_r($myArray);

在以上示例中,我们定义了一个数组$myArray,包含了多个关联数组,每个关联数组有两个键值对,分别是’name’和’age’。接下来,我们定义了一个递归排序函数recursiveSort,在该函数中,我们首先使用usort函数对数组进行排序,排序的依据是每个关联数组中的’age’。然后,通过array_walk_recursive函数递归地对数组进行排序。最后,我们调用recursiveSort函数并输出最终排序后的结果。

输出结果如下:

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 20
        )

    [1] => Array
        (
            [name] => John
            [age] => 25
        )

    [2] => Array
        (
            [name] => Mary
            [age] => 30
        )
)

可以看到,数组已经按照年龄的升序进行了递归排序。

正文完
 
评论(没有评论)