$x = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
$y = ["e", "0", "0", "5", "6", "0", "b", "9", "6", "a", "c", "5", "5", "d", "3", "b", "5", "5", "f", "9", "8", "5", "d", "2", "9", "f", "b", "d", "6", "3", "d", "1", "9", "8", "c", "6", "1", "e", "9", "6", "a", "4", "1", "a", "d", "0", "1", "e", "9", "f", "c", "b", "c", "b", "4", "c", "7", "f", "0", "7", "7", "6"];
array_multisort($y, SORT_DESC, $x);
print_r($x);
这时候 $i
数组会根据 $p
数组进行排序。打印结果为:
Array
(
[0] => N
[1] => V
[2] => s
[3] => z
[4] => B
[5] => L
[6] => a
[7] => 1
[8] => 4
[9] => I
[10] => n
[11] => w
[12] => 8
[13] => O
[14] => Q
[15] => T
[16] => k
[17] => 0
[18] => P
[19] => R
[20] => g
[21] => p
[22] => E
[23] => H
[24] => j
[25] => 6
[26] => C
[27] => M
[28] => h
[29] => t
[30] => y
[31] => 7
[32] => u
[33] => U
[34] => X
[35] => Y
[36] => 2
[37] => 9
[38] => D
[39] => Z
[40] => e
[41] => i
[42] => d
[43] => l
[44] => m
[45] => q
[46] => r
[47] => v
[48] => F
[49] => S
[50] => 3
[51] => o
[52] => x
[53] => 5
[54] => A
[55] => G
[56] => K
[57] => J
[58] => W
[59] => b
[60] => c
[61] => f
)
那么如果使用javascript 实现 array_multisort 这种功能呢??
使用 Lodash 的 orderBy,区别在于
_.orderBy
的三个参数分别是:要排序的数组,排序的键(按主次依次),排序的方式("desc"
或"asc"
),数据只能用一个参数提供,所以如果是多个数组的话,需要先组合(可以用_.zip
来组合),排序完成之后再拆开(用_.zip
的反向操作_.unzip
)。