PHP数组函数array_multisort()用法实例分析
本文实例分析了PHP数组函数array_multisort()用法。分享给大家供大家参考,具体如下:
有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。我们可以使用array_multisort()这个函数。array_multisort()函数对多个数组或多维数组进行排序。
参数中的数组被当成一个表的列并以行来进行排序-这类似SQL的ORDERBY子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
SORT_ASC-默认,按升序排列。(A-Z)
SORT_DESC-按降序排列。(Z-A)
随后可以指定排序的类型:
SORT_REGULAR-默认。将每一项按常规顺序排列。
SORT_NUMERIC-将每一项按数字顺序排列。
SORT_STRING-将每一项按字母顺序排列。
语法:array_multisort(array1,sortingorder,sortingtype,array2,array3...)
array1:必需。规定输入的数组。
sortingorder:可选。规定排列顺序。可能的值是SORT_ASC和SORT_DESC。
sortingtype:可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2:可选。规定输入的数组。
array3:可选。规定输入的数组。
字符串键名将被保留,但是数字键将被重新索引,从0开始,并以1递增。可以在每个数组后设置排序顺序和排序类型。如果没有设置,每个数组参数会使用默认值。
下面是一个例子:
<?php $arr=''; echo'二维数组如下:'.'<br/>'; for($i=0;$i<=5;$i++) { $arr[$i]['val']=mt_rand(1,100); $arr[$i]['num']=mt_rand(1,100); } echo'<pre>'; print_r($arr); echo'</pre>'; echo'从二维数组中抽出键为val,单独成另一个数组:'.'<br/>'; foreach($arras$key=>$row) { $vals[$key]=$row['val']; $nums[$key]=$row['num']; } echo'<pre>'; print_r($vals); echo'</pre>'; echo'对其进行排序:'.'<br/>'; array_multisort($vals,SORT_ASC,$arr); echo'<pre>'; print_r($vals); echo'</pre>'; ?>
运行结果:
二维数组如下: Array ( [0]=>Array ( [val]=>46 [num]=>49 ) [1]=>Array ( [val]=>8 [num]=>24 ) [2]=>Array ( [val]=>37 [num]=>3 ) [3]=>Array ( [val]=>32 [num]=>35 ) [4]=>Array ( [val]=>19 [num]=>38 ) [5]=>Array ( [val]=>30 [num]=>37 ) ) 从二维数组中抽出键为val,单独成另一个数组: Array ( [0]=>46 [1]=>8 [2]=>37 [3]=>32 [4]=>19 [5]=>30 ) 对其进行排序: Array ( [0]=>8 [1]=>19 [2]=>30 [3]=>32 [4]=>37 [5]=>46 )
这样我们将得到一个按val升序排序的二维数组。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。