<?php
$arr1 = [1, 4, 2, 6, 3, 5];
$arr2 = ['a', 'd', 'b', 'f', 'c', 'e'];
/**
* $arr1 用于排序的一唯数组
* SORT_ASC 设置 $arr1 排序方式:SORT_ASC 升序排,SORT_DESC 降序排;,[此参数可以与 SORT_NUMERIC 位置的参数互换,效果一样]
* SORT_NUMERIC 排序类型标志:(按照什么类型来排序,数字和字符串不一样),[此参数可以与 SORT_ASC 位置的参数互换,效果一样]
* • SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
* • SORT_NUMERIC - 按照数字大小比较
* • SORT_STRING - 按照字符串比较
* • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。
* • SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
* • SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。
* $arr2 被影响的排序数组,可以多维。此数组 value 顺序根据 $arr1 位置一起变动。
*/
array_multisort($arr1, SORT_ASC, SORT_NUMERIC, $arr2);
var_export($arr1);
var_export($arr2);
/**
* 结果显示:$arr1 和 $arr2 都排序了
*/
<<<EOD
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
)array (
0 => 'a',
1 => 'b',
2 => 'c',
3 => 'd',
4 => 'e',
5 => 'f',
)
EOD;
/**
* 注意:如果 $arr1 值数量与 $arr2 值的数量不一致,直接报错。
*/
使用场景举例:
1、商品大列表里面,根据销量排序、根据价格排序。