怎样处理PHP中数组的排序和打乱问题?
发布时间:2022-08-02 15:46:42 所属栏目:PHP教程 来源:互联网
导读:在之前的文章《怎样获取数组中的键名?怎样转换键名的大小写?》中详细的介绍了PHP中键名操作的获取键名与转换键名大小写的相关操作,本篇文章我们一起来看一下PHP中怎样对多个数组进行排序,希望对大家有帮助! 在上一篇文章中我们了解了想要获取数组中所有
在之前的文章《怎样获取数组中的键名?怎样转换键名的大小写?》中详细的介绍了PHP中键名操作的获取键名与转换键名大小写的相关操作,本篇文章我们一起来看一下PHP中怎样对多个数组进行排序,希望对大家有帮助! 在上一篇文章中我们了解了想要获取数组中所有的元素名需要通过array_keys函数来实现,想要转换数组键名的大小写需要通过array_change_key_case函数来进行操作。这都是属于数组操作的一部分,我们之前在《怎样去给PHP数组进行排序(图文详解)》中简单的介绍了一些。 在PHP中怎样才能对多个数组进行排序?有怎样随机的对数组进行随机排序呢?在PHP中有内置的array_multisort函数与shuffle函数能够对数组进行升序排列和随机排序,下面我们一起来看一下吧。 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); ?> 输出结果: 1108.18.png 上述示例中,返回的结果是进行了升序的排序,下面我们来看一下,当两个值相同的时候,输出结果会有什么变化,示例如下: <?php $a1=array("Dog","Dog","Cat"); $a2=array("Pluto","Fw","Marry"); array_multisort($a1,$a2); print_r($a1); echo '<br/>'; print_r($a2); ?> 输出结果: 1108.19.png 上述示例中,当数组中的两个元素都相同的时候,并不会被覆盖,而是键名不同重新排序。 下面我们在来看一个综合的实例,当我们合并两个数组并且按照降序进行排列,输出结果会发生什么变化,示例如下: <?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); ?> 输出结果: 1108.22.png 上述中我们通过array_multisort函数能够对数组元素进行排序,下面我们来介绍一下shuffle函数。它能够将数组打乱。 (编辑:我爱故事小小网_铜陵站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |