PHP实现对二维数组某个键排序的方法
本文实例讲述了PHP实现对二维数组某个键排序的方法。分享给大家供大家参考,具体如下:
/** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @param string $field 排序的字段名 * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序) * @return array */ function list_sort_by($list, $field, $sortby = 'asc') { if (is_array($list)) { $refer = $resultSet = array(); foreach ($list as $i => $data) { $refer[$i] = &$data[$field]; } switch ($sortby) { case 'asc': // 正向排序 asort($refer); break; case 'desc': // 逆向排序 arsort($refer); break; case 'nat': // 自然排序 natcasesort($refer); break; } foreach ($refer as $key => $val) { $resultSet[] = &$list[$key]; } return $resultSet; } return false; } /** * 例子 * 求:根据二维数组的id键值降序排列(也就是id越大的排在越前)? */ $list = array( 0 => array( 'id' => 1, 'name' => '第一' ), 1 => array( 'id' => 3, 'name' => '第三' ), 2 => array( 'id' => 2, 'name' => '第二' ), 3 => array( 'id' => 4, 'name' => '第四' ), ); //解答 $new_list = list_sort_by($list, 'id', 'desc'); print_r($new_list);
运行结果如下:
Array ( [0] => Array ( [id] => 4 [name] => 第四 ) [1] => Array ( [id] => 3 [name] => 第三 ) [2] => Array ( [id] => 2 [name] => 第二 ) [3] => Array ( [id] => 1 [name] => 第一 ) )
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP实现二维数组根据key进行排序的方法
本文实例讲述了PHP实现二维数组根据key进行排序的方法.分享给大家供大家参考,具体如下: 在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现.下面就讲述一下如何实现二维数组根据key进行排序. 实现方法: <?php /** * ======================================= * Created
-
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
今天发现一个很好用二维数组排序的php方法,usort,推荐给大家,以后二维数组里面,要按照一个字段的值排序用这个方法简单高效,例如下面的数组: [guess_subject] => Array ( [0] => Array ( [subject_id] => 4587 [game_id] => 9228 [parent_category_id] => 78 [subject_title] => 全场比赛两队总得分之和是 [subject_date_time] =>
-
php 二维数组时间排序实现代码
昨天要排序数组的时候发现了,要按时间排序,但是php并没有内设这个函数,所以在网上找到了这个代码,第一个参数为数组,第二个是要排序的元素,第三个为排序方式, 下面就是php 二维数组排序的代码 function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v){ $keysvalue[$k] = $v[$keys]; } $type == 'a
-
PHP二维数组排序的3种方法和自定义函数分享
关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP直接来对数组进行排序,而在PHP里存储数据用到最多的就是对象和数组,但处理较多的就是数组,因为有非常丰富的内置函数库(其实对象一定程度上也可以理解为是数组),这些函数库很大程度上可以帮助我们实现某些功能.常用的系统函数有sort.asort.arsort.ksort.krsort等等,这里我主要说下对二维数组的排序,两种方法: 一.用PHP自带array_multiso
-
php中二维数组排序问题方法详解
PHP中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在前,第二个参数在后排列 $person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'
-
php自定义函数实现二维数组按指定key排序的方法
本文实例讲述了php自定义函数实现二维数组按指定key排序的方法.分享给大家供大家参考,具体如下: 二维数组官方的排序方法并不好,该函数可以进行指定key的排序,已经测试并使用,代码如下: /*二维数组按指定的键值排序*/ function array_sort($arr, $keys, $type = 'desc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$ke
-
PHP实现二维数组按某列进行排序的方法
本文实例讲述了PHP实现二维数组按某列进行排序的方法.分享给大家供大家参考,具体如下: /* * 二维数组 按某列排序 * array_multisort($arr1,$arr2) * 手册 例子如下 * */ $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edi
-
php 二维数组快速排序算法的实现代码
php 二维数组快速排序算法的实现代码 二维数组排序算法与一维数组排序算法基本理论都是一样,都是通过比较把小的值放在左变的数组里,大的值放在右边的数组里在分别递归. 实例代码: <?php class Bubble { private function __construct() { } private static function sortt($data) { if (count ( $data ) <= 1) { return $data; } $tem = $data [0]['sco
-
PHP实现二维数组按指定的键名排序的方法示例
本文实例讲述了PHP实现二维数组按指定的键名排序的方法.分享给大家供大家参考,具体如下: <?php /*二维数组按指定的键值排序*/ function array_sort($array,$keys,$type='asc'){ if(!isset($array) || !is_array($array) || empty($array)){ return ''; } //排序字段名,如:id if(!isset($keys) || trim($keys)==''){ return ''; }
-
PHP实现对二维数组某个键排序的方法
本文实例讲述了PHP实现对二维数组某个键排序的方法.分享给大家供大家参考,具体如下: /** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @param string $field 排序的字段名 * @param string $sortby 排序类型 (asc正向排序 desc逆向排序 nat自然排序) * @return array */ function list_sort_by($list, $field, $sort
-
php删除二维数组中的重复值方法
实例如下所示: //二维数组去掉重复值 public function a_array_unique($array){ $out = array(); foreach ($array as $key=>$value) { if (!in_array($value, $out)){ $out[$key] = $value; } } $out = array_values($out); return $out; } 以上这篇php删除二维数组中的重复值方法就是小编分享给大家的全部内容了,希望能给大家
-
Java二维数组简单定义与使用方法示例
本文实例讲述了Java二维数组简单定义与使用方法.分享给大家供大家参考,具体如下: Java的二维数组是先创建一个一维数组,然后该数组的元素再引用另外一个一维数组.在使用二维数组的时候,通过两个中括号[]来访问每一层维度的引用,直到访问到最终的数据. public class MultiDimArray{ /** * @param args */ public static void main(String[] args) { int[][] arr = new int[3][]; arr[0]
-
JS实现二维数组横纵列转置的方法
我想将一个二维数组横纵列转过来,我就不信只有我有这个需求,可是百度了好久,四海八荒都找遍了-- 后来证明还是大神说的google好用 ~ 第一条就是,鄙视臭百度 此番记录下来,也方便各位道友查阅(好想说"仙友",最近被一部剧毒害的后遗症 ~~~) var newArray = arr[0].map(function(col, i) { return arr.map(function(row) { return row[i]; }) }); 以上这篇JS实现二维数组横纵列转置的方法就是小
-
python 二维数组90度旋转的方法
如下所示: #!/usr/bin/env python #-*- coding: utf-8 -*- """ [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] 2维数组顺时针90度旋转后结果如下 [0, 0, 0, 0] [1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3] [0][1] <==> [1][0] [0][2] <==> [2][0] [0][3] <==
-
php通过ksort()函数给关联数组按照键排序的方法
本文实例讲述了php通过ksort()函数给关联数组按照键排序的方法.分享给大家供大家参考.具体分析如下: php通过ksort()函数给关联数组按照键排序,ksort函数按照关联数组的key正序排序,如果要倒序可以是哦那个krsort()函数 $first = array("x"=>5,"a"=>2,"f"=>1); ksort( $first ); foreach ( $first as $key => $val )
-
php二维数组用键名分组相加实例函数
本文介绍一篇关于php 二维数组以某一键名进行分组相加的实例程序,如果是从数据库里取数据的时候大可以SELECT SUM(t_value),t_id FROM t_table GROUP BY t_id,但是如果是在php程序中处理类似的问题就稍微麻烦点了,这里给个函数就是处理类似的问题 复制代码 代码如下: <?php /* 函数功能:对二维数组以某一键名进行分组相加,返回新的二维数组 * 参数说明:$arr-源数组:$new_arr-相加后得到的新数组:$target_key-要分组的键名
-
PHP二维数组分页2种实现方法解析
方法一: <?php $arr_click = array( array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-09' ), array( 'clicks' => 1, 'clickDate' =>'2010
-
php一维二维数组键排序方法实例总结
本文实例总结了php一维二维数组键排序方法.分享给大家供大家参考.具体方法如下: 在php中数组排序一直是一个老生常谈的问题,下面我们来集中讲一下关于在php中一维数组与二维数组排序的实现程序,相信对大家有一定的参考借鉴价值. 功能:对数组进行重新排序. 说明:冒泡排序 (一维数组)(二维数组某个健排序) 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止 设想被排序的数组R[1..N] 垂直竖立,将每个数据元素看作有重量的气泡,从下往上扫描数组,凡
-
php对二维数组按指定键值key排序示例代码
复制代码 代码如下: function array_sort($array, $key){ if(is_array($array)){ $key_array = null; $new_array = null; for( $i = 0; $i < count( $array ); $i++ ){ $key_array[$array[$i][$key]] = $i; } ksort($key_array); $j = 0; foreach($key_array as $k => $v){ $ne
随机推荐
- js中鼠标滚轮事件详解(firefox多浏览器)
- js中如何复制一个对象并获取其所有属性和属性对应的值
- 基于jQuery1.9版本如何判断浏览器版本类型
- JS简单的轮播的图片滚动实例
- Cocos2d-x中使用CCScrollView来实现关卡选择实例
- ASP.NET笔记之文章发布管理小系统案例
- a.sp.net清除ListBox的列表项(删除所有项目)
- php和editplus正则表达式去除空白行
- python实现倒计时的示例
- 计算两个时间之差的函数
- Linux中find命令的用法入门
- 在SQL Server中实现最短路径搜索的解决方法
- Sql Injection in DB2数据库
- 浅谈C#下winform和JS的互相调用和传参(webbrowser)
- jQuery ajax动态生成table功能示例
- linux shell循环:for、while、until用法详解
- Java源码解析ThreadLocal及使用场景
- 微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
- mybatis plus代码生成器配置过程解析
- Vue.js最佳实践(五招助你成为vuejs大师)