PHP怎么对多维数组进行排序

PHP定义了许多函数,可以对多维数组进行排序。

下面介绍几种常用的方法:

  1. array_multisort()函数

array_multisort()函数可以用来对多维数组进行排序。该函数可以通过将数组的第一个维度作为排序关键字,对不同维度的元素进行排序。

示例代码:

$students =[
    ['name'=>'Tom', 'age'=>20],
    ['name'=>'John', 'age'=>18],
    ['name'=>'Peter', 'age'=>22]
];

//按照年龄升序排序
foreach ($students as $key => $row) {
    $age[$key]  = $row['age'];
}
array_multisort($age, SORT_ASC, $students);

//输出排序结果
foreach ($students as $key => $row) {
    echo $row['name'] . ' ' . $row['age'] . '<br />';
}
  1. usort()函数

usort()函数可以自定义排序函数,对多维数组进行排序。该函数的参数是一个数组和一个比较函数,通过比较函数对数组进行排序。

示例代码:

$students =[
    ['name'=>'Tom', 'age'=>20],
    ['name'=>'John', 'age'=>18],
    ['name'=>'Peter', 'age'=>22]
];

//按照姓名排序
usort($students, function($a, $b) {
    return strcmp($a['name'], $b['name']);
});

//输出排序结果
foreach ($students as $key => $row) {
    echo $row['name'] . ' ' . $row['age'] . '<br />';
}
  1. uasort()函数

uasort()函数也是自定义排序函数,用于对关联数组进行排序。该函数的参数是一个数组和一个比较函数,通过比较函数对数组进行排序。

示例代码:

$students = [
    'Tom' => ['age'=>20],
    'John' => ['age'=>18],
    'Peter' => ['age'=>22]
];

//按照年龄升序排序
uasort($students, function($a, $b) {
    return $a['age'] - $b['age'];
});

//输出排序结果
foreach ($students as $name => $row) {
    echo $name . ' ' . $row['age'] . '<br />';
}
  1. ksort()函数

ksort()函数可以对关联数组按照键名进行排序。该函数排序后,键名与键值的关联关系不变。

示例代码:

$students = [
    'Tom' => ['age'=>20],
    'John' => ['age'=>18],
    'Peter' => ['age'=>22]
];

//按照键名排序
ksort($students);

//输出排序结果
foreach ($students as $name => $row) {
    echo $name . ' ' . $row['age'] . '<br />';
}

以上就是PHP对多维数组排序的几种方法,可以根据实际需求选择合适的方法。

Leave a Comment

豫ICP备19001387号-1