PHP多维数组排序实现程序代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-14 21:53:38 浏览: 评论:0
在php中对数组排序包括一维数组排序与多维数组排序,下面我来详细介绍利用php数组排序函数与自定函数来实现数据排序的具体方法.
单数组排序,sort函数升序排序:
bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] )
PHP实例代码如下:
- <?php
- $fruits = array("lemon", "orange", "banana", "apple");
- sort($fruits);
- var_dump($fruits);
- ?>
-rsort降序排列--,代码如下:
- <?php
- $fruits = array("lemon", "orange", "banana", "apple");
- rsort($fruits);var_dump($fruits);
- ?>
比如有个多维数组,代码如下:
- $arr = array(
- 'd' => array('id' => 5, 'name' => 1, 'age' => 7),
- 'b' => array('id' => 2,'name' => 3,'age' => 4),
- 'a' => array('id' => 8,'name' => 10,'age' => 5),
- 'c' => array('id' => 1,'name' => 2,'age' => 2)
- ;
需要对二维数组中的 age 项排序,需要用到PHP的内置函数 array_multisort(),array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序,代码如下:
- // 取得列的列表
- foreach ($data as $key => $row) {
- $volume[$key] = $row['volume'];
- $edition[$key] = $row['edition'];
- }
- // 将数据根据 volume 降序排列,根据 edition 升序排列
- // 把 $data 作为最后一个参数,以通用键排序
- array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
- 数据集合现在排好序了,结果如下:
- volume | edition
- -------+--------
- 98 | 2
- 86 | 1
- 86 | 6
- 85 | 6
- 67 | 2
- 67 | 7
自定义函数,代码如下:
- function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC)
- {
- if(is_array($multi_array))
- {
- foreach ($multi_array as $row_array)
- {
- if(is_array($row_array))
- {
- $key_array[] = $row_array[$sort_key];
- }
- else
- {
- return false;
- }
- }
- }
- else
- {
- return false;
- }
- array_multisort($key_array,$sort,$multi_array);
- return $multi_array;
- }//开源软件:phpfensi.com
- //处理
- print_r(multi_array_sort($arr,'age'));
- //输出
- Array
- (
- [c] => Array
- (
- [id] => 1
- [name] => 2
- [age] => 2
- )
- [b] => Array
- (
- [id] => 2
- [name] => 3
- [age] => 4
- )
- [a] => Array
- (
- [id] => 8
- [name] => 10
- [age] => 5
- )
- [d] => Array
- (
- [id] => 5
- [name] => 1
- [age] => 7
- )
- )
实际上真正在排序的时候还有很多方法可以使用,比如php的array数组自带的 arsort(),asort(),ksort(),krsort(),natsort(),natcasesort(),rsort(),usort(),array_multisort() 和 uksort().
Tags: PHP多维数组排序 PHP数组排序
相关文章
- ·php多维数组排序与操作函数(2014-08-05)
- ·php一维数组排序与多维数组排序(2014-09-09)
- ·array_multisort 多维数组排序函数(2014-09-18)
- ·PHP实现指定字段的多维数组排序函数分享(2021-05-15)
- ·php中array_multisort对多维数组排序的方法(2021-06-11)
- ·PHP多维数组排序array详解(2021-08-20)
- ·PHP数组排序函数使用方法(2014-07-11)
- ·PHP中数组排序函数详解(2014-08-28)
- ·PHP数组排序实例与函数(2014-09-20)
- ·PHP关联数组排序几种方法(2015-04-11)
- ·php多维数组的排序方式(2016-07-27)
- ·php中有序的数组打印或排序的例子(2016-08-30)
- ·php对数组排序代码分享(2020-09-21)
- ·PHP数组排序之sort、asort与ksort用法实例(2021-04-11)
- ·PHP使用array_multisort对多个数组或多维数组进行排序(2021-05-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)