在PHP中,可以使用array_multisort函数按照模式排列数组。
下面是一个示例代码:
// 定义要排序的数组
$students = array(
array('name' => 'John', 'age' => 20, 'grade' => 'A'),
array('name' => 'Jane', 'age' => 22, 'grade' => 'B'),
array('name' => 'David', 'age' => 21, 'grade' => 'A'),
array('name' => 'Sarah', 'age' => 19, 'grade' => 'C'),
);
// 定义排序模式
$sortOrder = array(
array_column($students, 'grade'), // 按照grade字段排序
SORT_ASC, // 升序排序
array_column($students, 'age'), // 按照age字段排序
SORT_DESC, // 降序排序
);
// 使用array_multisort函数按照模式排序数组
array_multisort(...$sortOrder, $students);
// 打印排序后的数组
print_r($students);
上述代码中,首先定义了要排序的数组$students
,数组中的每个元素是一个关联数组,代表一个学生的信息。
然后定义了排序模式$sortOrder
,其中第一个元素是要按照的字段grade
进行排序,第二个元素SORT_ASC
表示升序排序,第三个元素是要按照的字段age
进行排序,第四个元素SORT_DESC
表示降序排序。
最后,使用array_multisort
函数按照模式排序数组$students
,并将排序结果存放在原数组中。
输出结果如下:
Array
(
[0] => Array
(
[name] => Sarah
[age] => 19
[grade] => C
)
[1] => Array
(
[name] => David
[age] => 21
[grade] => A
)
[2] => Array
(
[name] => John
[age] => 20
[grade] => A
)
[3] => Array
(
[name] => Jane
[age] => 22
[grade] => B
)
)
可以看到,数组按照指定的模式进行了排序。
上一篇:按照模式截取“雪花子字符串”
下一篇:按照模式排序