全球旧事资料 分类
PHP二维数组的简易排序
20110320有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。我们可以使用array_multisort这个函数。array_multisort函数对多个数组或多维数组进行排序。参数中的数组被当成一个表的列并以行来进行排序这类似SQL的ORDERBY子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:

SORT_ASC默认,按升序排列。AZSORT_DESC按降序排列。ZA
随后可以指定排序的类型:

SORT_REGULAR默认。将每一项按常规顺序排列。SORT_NUMERIC将每一项按数字顺序排列。SORT_STRING将每一项按字母顺序排列。
语法:array_multisortarray1sorti
gordersorti
gtypearray2array3

array1:必需。规定输入的数组。sorti
gorder:可选。规定排列顺序。可能的值是SORT_ASC和SORT_DESC。sorti
gtype:可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。array2:可选。规定输入的数组。array3:可选。规定输入的数组。
字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。可以在每个数组后设置排序顺序和排序类型。如果没有设置,每个数组参数会使用默认值。下面是一个例子:01php0203arr
f04050607080910111213141516171819202122232425262728293031323334运行结果:01二维数组如下:02Arrayechoprepri
t_rvalsechopreecho对其进行排序:brarray_multisortvalsSORT_ASCarrechoprepri
t_rvalsechopreecho从二维数组中抽出键为val,单独成另一个数组:brforeacharraskeyrowvalskeyrowval
umskeyrow
umechoprepri
t_rarrechopreecho二维数组如下:brfori0i5iarrivalmt_ra
d1100arri
ummt_ra
d1100
f0304050607080910111213141516171819202122232425262728293031323334353637385Arrayval30
um374Arrayval19
um383Arrayval32
um352Arrayval37
um31Arrayval8
um240Arrayval46
um49
f394041从二维数组中抽出键为val,单独成另一个数组:42Array434445464748495051对其进行排序:52Array5354555657585960我们将得到一个按val升序排序的二维数组。0r
好听全球资料 返回顶部