PHP中有一些函数可以用来对数组进行排序。sort()-对数组进行升序排序rsort()-对数组进行降序排序asort()-根据关联数组的值对数组进行升序排序ksort()-对数组进行升序排序根据关联数组的键arsort()-根据关联数组的值按降序对数组进行排序krsort()-根据关联数组的键对数组进行降序排序示例:$arr=['green','汽车','苹果','书'];排序($arr);变量转储($arr);可以得到排序后的结果:array(size=4)0=>string'apple'(length=5)1=>string'book'(length=4)2=>string'car'(length=3)3=>string'green'(length=5)但是对于一个有多个字段的数组,如何按照指定的字段进行排序呢?比如下面这个数组:$arr=[['age'=>50,'name'=>'张三'],['age'=>18,'name'=>'李四'],['年龄'=>27,'姓名'=>'王舞']];我们如何按年龄或姓名排序?我们可以使用函数array_multisort按指定字段排序。array_multisort(array_column($arr,'age'),SORT_ASC,$arr);var_dump($arr);printresultarray(size=3)0=>array(size=2)'age'=>int18'name'=>string'李四'(length=6)1=>array(size=2)'age'=>int27'name'=>string'王舞'(length=6)2=>array(size=2)'age'=>int50'name'=>string'张三'(length=6)这样排列,也就是说,在使用函数array_multisort排序时,使用array_column指定的列来提取数组,把第一个参数,排序常量放在第二个参数,数组放在第三个参数,然后你可以按指定的字段排序。SORT_ASC是升序的,SORT_DESC是降序的。以上就是按字段排序的方法,谢谢。
