这篇文章主要介绍“如何解决PHP中数组的排序和打乱问题”,在日常操作中,相信很多人在如何解决PHP中数组的排序和打乱问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决PHP中数组的排序和打乱问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
array_multisort
函数-对多个数组进行排序
在PHP中array_multisort
函数能够输入一个或者多个数组,函数会先给第一个数组排序,然后接着对下一组进行排序。array_multisort
函数的基本语法格式如下:
array_multisort(array1,sorting order,sorting type,array2,array3...)
其中需要注意的是:
参数array1
是必须要有的,是要进行排序的数组,参数array2
、3是可选的,也是要进行排序的数组。参数sorting order
也是一个可选的参数,在默认的情况下参数表示的是SORT_ASC,表示的是数组排序是升序,当单数sorting order为SORT_DESC
的时候,表示的是按降序排列。
参数sorting type
也是一个可选参数,默认情况下的值为SORT_REGULAR
表示的是,数组排序按照常规顺序排列。当参数的值为SORT_NUMERIC
的时候表示的是将数组中的元素当做数字来进行处理。当参数的值为SORT_STRING
表示的是将数组中的元素当做字符串来进行处理。当参数的值为SORT_LOCALE_STRING
表示的是一颗通过setlocale
函数来进行更改的作为字符串处理。当参数的值为SORT_NATURAL
表示的是类似 natsort
() 的自然排序。
使用array_multisort
函数对字符串进行排序,键名为字符串的元素,键名会保留,但是键名为数字的会被重新索引。这个索引规则还是一样的。
如果排序成功的话,返回的结果是true
;如果排序失败,返回的结果是false
。
下面我们通过示例来看一下array_multisort
函数的基本用法,示例如下:
<?php$a1=array("Dog","Cat");$a2=array("Fw","Marry");array_multisort($a1,$a2);print_r($a1);echo '<br/>';print_r($a2);?>
输出结果:
上述示例中,返回的结果是进行了升序的排序,下面我们来看一下,当两个值相同的时候,输出结果会有什么变化,示例如下:
<?php$a1=array("Dog","Dog","Cat");$a2=array("Pluto","Fw","Marry");array_multisort($a1,$a2);print_r($a1);echo '<br/>';print_r($a2);?>
输出结果:
上述示例中,当数组中的两个元素都相同的时候,并不会被覆盖,而是键名不同重新排序。
下面我们在来看一个综合的实例,当我们合并两个数组并且按照降序进行排列,输出结果会发生什么变化,示例如下:
<?php$a1=array(1,30,15,7,25);$a2=array(4,30,20,41,66);$num=array_merge($a1,$a2);array_multisort($num,SORT_DESC,SORT_NUMERIC);print_r($num);?>
输出结果:
上述中我们通过array_multisort
函数能够对数组元素进行排序,下面我们来介绍一下shuffle函数。它能够将数组打乱。
shuffle
函数-重新排序数组
在PHP中既然有函数能够将数组元素进行有序的排序,那同样的也有办法能够将数组进行重新排序,也就是将数组打乱。shuffle
函数的基本语法结构如下:
shuffle(array)
其中参数array就是需要进行重新排序的数组,shuffle
() 函数把数组中的元素按随机顺序重新排列。数组中原来的键名会被删除,新的数组会有新的键名。
函数如果排序成功,返回的结果是true
,如果失败,返回的结果是flase
。
下面我们通过示例来看一下shuffle
函数的使用,示例如下:
<?php$my_array = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow","e"=>"purple");shuffle($my_array);print_r($my_array);?>
输出结果:
上述示例中,通过shuffle
函数将数组进行重新排列,并且每执行一次数组的排列顺序就会改变。
到此,关于“如何解决PHP中数组的排序和打乱问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!