位置: 编程技术 - 正文
推荐整理分享PHP数组函数array_multisort()的用法(php数组函数输出《咏雪》里有多少"片"字),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php数组函数有哪些,php数组函数,选班长,php数组函数大全,php数组函数实现机选双色球,php数组函数题目,php数组函数 菜鸟,php数组函数大全,php数组函数大全,内容如对您有帮助,希望把文章链接给更多的朋友!
(PHP 4, PHP 5)
array_multisort — 对多个数组或多维数组进行排序
说明 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $... ]]] )array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
排序顺序标志: SORT_ASC - 按照上升顺序排序 SORT_DESC - 按照下降顺序排序
排序类型标志: SORT_REGULAR - 将项目按照通常方法比较 SORT_NUMERIC - 将项目按照数值比较 SORT_STRING - 将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。
输入数组被当成一个表的列并以行来排序——这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
参数arr
要排序的一个 array。
arg接下来的每个参数可以是另一个 array 或者是为之前 array 排序标志选项参数: SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING.
...Additional args.
返回值成功时返回 TRUE, 或者在失败时返回 FALSE。
范例
Example #1 Sorting multiple arrays
<?php$ar1=array(,,,0);$ar2=array(1,3,2,4);array_multisort($ar1,$ar2);var_dump($ar1);var_dump($ar2);?>In this example, after sorting, the first array will contain 0, , , . The second array will contain 4, 1, 2, 3. The entries in the second array corresponding to the identical entries in the first array ( and ) were sorted as well.
Example #2 排序多维数组
<?php$ar=array(array("",,,,"a"),array(1,2,"2",3,1));array_multisort($ar[0],SORT_ASC,SORT_STRING,$ar[1],SORT_NUMERIC,SORT_DESC);var_dump($ar);?>本例中在排序后,第一个数组将变成 "",,,,"a"(被当作字符串以升序排列)。第二个数组将包含 1, 3, "2", 2, 1(被当作数字以降序排列)。
Example #3 对数据库结果进行排序
本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。
例子中的数据如下:
数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。
<?php$data[]=array('volume'=>,'edition'=>2);$data[]=array('volume'=>,'edition'=>1);$data[]=array('volume'=>,'edition'=>6);$data[]=array('volume'=>,'edition'=>2);$data[]=array('volume'=>,'edition'=>6);$data[]=array('volume'=>,'edition'=>7);?>本例中将把 volume 降序排列,把 edition 升序排列。
现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。
<?php//取得列的列表foreach($dataas$key=>$row){$volume[$key]=$row['volume'];$edition[$key]=$row['edition'];}//将数据根据volume降序排列,根据edition升序排列//把$data作为最后一个参数,以通用键排序array_multisort($volume,SORT_DESC,$edition,SORT_ASC,$data);?>数据集合现在排好序了,结果如下:
Example #4 不区分大小写字母排序
SORT_STRING 和 SORT_REGULAR 都是区分大小写字母的,大写字母会排在小写字母之前。
要进行不区分大小写的排序,就要按照原数组的小写字母拷贝来排序。
<?php$array=array('Alpha','atomic','Beta','bank');$array_lowercase=array_map('strtolower',$array);array_multisort($array_lowercase,SORT_ASC,SORT_STRING,$array);print_r($array);?>以上例程会输出:
【译者注】本函数相当有用,为有助于理解,请再看下面这个例子:
Example #5 名次排列
<?php$grade=array("score"=>array(,,.0,,""),"name"=>array("ZhangSan","LiSi","WangWu","ZhaoLiu","LiuQi"));array_multisort($grade["score"],SORT_NUMERIC,SORT_DESC,//将分数作为数值,由高到低排序$grade["name"],SORT_STRING,SORT_ASC);//将名字作为字符串,由小到大排序var_dump($grade);?>以上例程会输出:
本例中对包含成绩的数组 $grade 按照分数(score)由高到低进行排序,分数相同的人则按照名字(name)由小到大排序。排序后李四 分为第一名,赵六 分为第五名没有异议。张三、王五和刘七都是 分,他们的名次则由其姓名的字母顺序排列,Liu 在前,Wang 在后而 Zhang 在最后。为了区别,三个 分分别用了整数,浮点数和字符串来表示,可以在程序输出中清楚地看到它们排序的结果。
参见usort() - 使用用户自定义的比较函数对数组中的值进行排序 数组排序函数对比
PHP数组函数array_product()的用法 array_product(PHP5=5.1.0)array_product计算数组中所有值的乘积说明numberarray_product(array$array)array_product()以整数或浮点数返回一个数组中所有值的乘积。参数array
PHP数组函数array_merge()的用法 array_merge(PHP4,PHP5)array_merge合并一个或多个数组说明arrayarray_merge(array$array1[,array$...])array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在
PHP数组函数array_pop()的用法 array_pop(PHP4,PHP5)array_pop将数组最后一个单元弹出(出栈)说明mixedarray_pop(array&$array)array_pop()弹出并返回array数组的最后一个单元,并将数组array的长度减
上一篇:PHP数组函数array_push()的用法(php数组函数 菜鸟)
友情链接: 武汉网站建设