复制代码 代码如下:<?php class=’pingjiaF’ frameborder=’0′ src=’https://www.jb51.net’ scrolling=’no’> 对数组排序 usort() 函数使用用户自定义的函数对数组排序。 */ function cmp($a, $b) //用户自定义回调函数 { if($a==$b) //如果两个参数相等 { return 0; //返回0 } return($a>$b)?-1:1; //如果第1个参数大于第2个返回1,否则-1 } $a=array(3,2,5,6,1); //定义一个数组 usort 在PHP中,数组排序是一个常见的任务,特别是在处理数据和输出有序结果时。本文将通过几个实例详细介绍PHP如何对数组进行排序,包括基本的数组排序、自定义排序以及数组键的排序。 1. 基本数组排序 PHP提供了一系列内置函数来对数组的值进行排序。其中,`sort()`函数是最基础的,它按照升序对数组的值进行排序。在给定的例子中,`sort($fruits)`将数组`$fruits`的元素按照字母顺序排列。`sort()`会重新分配数组的键,使用连续的整数作为新键,原有的键会被删除。 ```php $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); foreach ($fruits as $key => $val) { echo "$key=$val\n"; } ``` 2. 自定义数组排序 当默认的排序方式不能满足需求时,可以使用`usort()`函数,它允许用户自定义排序规则。在例子中,我们定义了一个名为`cmp`的回调函数,这个函数接收两个参数并返回一个整数值,表示第一个参数是否小于、等于或大于第二个参数。`usort()`函数将使用这个函数来比较数组元素,从而实现自定义排序。 ```php $a = array(3, 2, 5, 6, 1); usort($a, "cmp"); foreach ($a as $key => $value) { echo "$key:$value\n"; } ``` 3. 数组键名排序 对于关联数组(键值对),我们可以使用`uksort()`函数对键名进行排序。这个函数同样接受一个用户自定义的比较函数。下面的示例展示了如何使用`uksort()`对数组的键进行排序: ```php $a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten"); uksort($a, "cmp"); foreach ($a as $key => $value) { echo "$key:$value\n"; } ``` 4. 其他排序函数 除了`sort()`、`usort()`和`uksort()`之外,PHP还提供了其他排序函数,如`rsort()`(降序排序)、`asort()`(按值升序排序并保持索引关系)和`arsort()`(按值降序排序并保持索引关系)。此外,`ksort()`和`krsort()`用于按键升序和降序排序,但不改变值。 5. 处理中文字符排序 当数组中包含中文字符时,可以使用`strcasecmp()`或`strcmp()`函数进行排序,这两个函数能正确处理多字节字符,比如UTF-8编码的中文字符。 6. 数组的分组和去重 在处理数组时,可能会遇到分组或去重的需求。PHP提供了`array_chunk()`用于将数组分割成多个小数组,而`array_unique()`则可以移除数组中的重复值。 总结,PHP提供了丰富的数组排序功能,可以根据实际需求选择合适的函数进行操作。无论是简单的升序/降序排序,还是复杂的自定义比较规则,甚至是对键名的排序,PHP都能轻松应对。在编写程序时,了解并熟练运用这些函数,能够有效地提升代码的可读性和效率。
- 粉丝: 5
- 资源: 873
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助