PHP 数组按多个字段排序】的更多相关文章

最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并且不宜封装成一个函数:经过跟请教同事之后,终于将代码精简并封装好:废话少说,请看下面代码,如有疑问,请评论. //例:将以下三个数组合并成一个数据,并以 "sort" 字段排序 $a = array( array('sort'=>0), array('sort'=>2), ar…
分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.…
多维数组如何根据指定键值?比如现在有数组结构如下: ,,,,,'subject' => 'math'), 1 => array('name' => '3班','avgScore'=>88,'subject' => 'math'), 2 => array('name' => '2班','avgScore'=>60,'subject' => 'math'),);…
  $array1 = array(       0=>array('id'=>8,'name'=>'Apple','age'=> 18),       1=>array('id'=>8,'name'=>'Bed','age'=>17),       2=>array('id'=>5,'name'=>'Cos','age'=>16),       3=>array('id'=>5,'name'=>'Cos','age…
function compare(name, minor) { return function (o, p) { var a, b; if (o && p && typeof o === 'object' && typeof p === 'object') { a = o[name]; b = p[name]; if (a === b) { return typeof minor === 'function' ? minor(o, p) : 0; } if…
/** * 针对二维数组下的某字段排序 * @param array $myarr 被排序数组 * @param string $sort_key 排序根据字段 * @param flag $sort_order 排序规则:SORT_ASC.SORT_DESC * @param flag $sort_type 排序类型:SORT_REGULAR.SORT_NUMERIC.SORT_STRING * @return array 排序后的数组 */ public function myarr_sor…
二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按照升序排列(rsort降序),不保留原始的键 ksort 对数组的键按照升序排列(krsort降序) 保留键值关系 asort 对数组的值按照升序排列(arsort降序),保留键值关系 方法: 取出要排序的值组成值数组(为一维数组),按要求对值进行排序(保持键值关系),遍历值数组,按照键对应赋值给结…
平时简单的一维数组或者简单的数组排序这里就不多作介绍,这里主要是针对平时做项目中的可能遇到的情况,根据多维数组中的其中一个排序.用到的php函数是:array_multisort. 思路:获取其中你需要排序的字段,作为一维数组arr1,后边会用来排序多维数组data.这里主要以二维数组为例,多维数组也是同样的思路. $data = array( array('price' => '500', 'count' => '40', 'level' => '1'), array('price'…
//准备 二维数组 //按一个字段排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; } array_multisort($dos,SORT_ASC,$rank); var_dump($rank); //按两个字段先后排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; $ds[$key] = $val['join_time']; } a…
/**数组根据数组对象中的某个属性值进行排序的方法 * 使用例子:newArray.sort(sortByArr(['number'],false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序 * @param attr 排序的属性 ['name','sex'...],根据一个字段或者多个字段排序 * @param rev true表示升序排列,false降序排序 * */ function sortByArr(arr, rev) { if (rev == un…
这个太常用了,记录下.方便后面用 /** * @param $arr [要排序的数组] * @param $condition [要排序的条件, for array('id'=>SORT_DESC,'add_time'=>SORT_ASC)] * @return bool|mixed * 对二维数组多个字段排序 */function SortArrByManyField($arr,$condition){ if (empty($condition)) { return false; } $te…
前端对一个json数组进行排序,用户需要动态的根据自己的选择来对json数据进行排序. 由于后台表设计问题所以不能用sql进行排序,这里用到了js的sort方法. 如果对单字段排序,那么很简单,一个sort就搞定.对多字段排序时需要用到for,而且需要对在sort中对任意两个元素进行比较,如果前一个字段相同那么才需要进行下一个字段的排序:反之则返回 0.秉承此思路编写代码如下: var orderArr = sortObjectArray(dataObj,['path_cate','path_v…
来源:js对象数组按照多个字段进行排序 一.数组排序 Array.sort()方法可以传入一个函数作为参数,然后依据该函数的逻辑,进行数组的排序. 一般用法:(数组元素从小大进行排序) var a = [9, 6, 5, 7, 11, 52, 15]; a.sort((a, b) => a-b) // (7) [5, 6, 7, 9, 11, 15, 52] sort()方法,接收了一个函数作为参数时,排序主要根据传入函数的返回值是否大于0进行排序. 1)当 a - b < 0 时, 则 a…
经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用.PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序.在这篇文章中我们将讨论该排序中最重要的几个函数. 简单排序 首先,让我们来看看最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列.PHP的sort()函数实现了这个功能,如Listing A所示: Listing A <?php  $data = a…
引子 在以数据为中心的信息系统中,以表格形式展示数据是在常见不过的方式了.对数据进行排序是必不可少的功能.排序可以分为按单个字段排序和按多个字段不同排序方向排序.单字段排序局限性较大,不能满足用户对数据的关注点变化的需求,而多字段排序就可以较好的弥补这个缺陷. 多字段排序,实现的方式从大的层面上可以分为后端实现和前端实现. 后端排序 后端实现排序可以在数据库层面实现或者在应用程序层面实现. 数据库层面实现多字段排序非常简单,使用SQL的排序指令“Order By”即可——Order By fie…
我们用angularjs {{}},ng-model循环绑定数组或对象的内容的时候,有时候会用到排序,有时候可能会有多个字段排序 具体要用到过滤 数据的展现,可以通过ng-repeat实现.当网页解析到ng-repeat的时候,会为每一个数组中的元素都克隆一份标签,进行编译解析. 如上图  ,用orderBy可以实现排序的功能,具体用法见上图,上图显示的结果如下图,如果你需要由小到大的排序的话,可以把'Age'后面的true去掉, 请看截图 ,按照年龄从大到小开始排序了 有时候,我们做开发,数据…
一.查找算法 1.顺序查找(一个一个查,效率低,不用多说) 2.二分查找 /* php 二分查找 在$a数组里查找$x的位置 $a必须是一个以升序排序后的数组 */ function binsearch($find,$arr){ $count = count($arr); $start = 0; $end = $count-1; while($start<=$end){ $middle = intval(($start+$end)/2); if($arr[$middle]>$find){ $e…
实现多维数组的指定多个字段排序 上面的实例讲解了如何实现多维数组指定一个字段排序,但如果要实现指定多个字段来对数组进行排序该如何思考? 多个字段是几个?2个,3个或更多,所以这个不确定的因素需要排除. 我们先来看2指定2个字段进行排序的方案: $arr = array( '0' => array( 'id' => 3, 'age' => 27 ), '1' => array( 'id' => 5, 'age' => 50 ), '2' => array( 'id'…
对数组中的元素进行排序. 此方法按 Unicode 值排序. (ASCII 是 Unicode 的一个子集.) 默认情况下,Array.sort()按以下方式进行排序: 1. 排序区分大小写(Z优先于a). 2. 按升序排序(a优先于b). 3. 修改该数组以反映排序顺序:在排序后的数组中不按任何特定顺序连续放置具有相同排序字段的多个元素. 4. 元素无论属于何种数据类型,都作为字符串进行排序,所以 100 在 99 之前,这是因为 "1" 的字符串值小于 "9"…
js 基础--sort方法: arrayObject.sort(sortby); 参数:定义排序规则(正序.倒序.按字段排序)的函数: 返回值:对数组的引用.请注意,数组在原数组上进行排序,不生成副本. 无参数时,默认为正序排序(数值数组按数值正序,字符串数组按字符正序). 要实现不同的排序方式,只需实现sort的输入参数函数即可. 正序排序: //定义正序规则的参数函数function NumAscSort(a,b) { return a - b; } var arr = new Array(…
The C programming language 的关于文本行排序的问题有很多种要求的方式,在对每行的字段排序方面,最简单的是例如对前N个字符或者末位N个字符进行排序,更高一点的要求是,对特殊符号标识的字段排序,例如,对逗号前的字段进行排序等,标识符号要尽可能地自定义,这里的程序实现了前者,即依据命令行参数N,对每行的前N或者后N个字符排序,当然,也实现了和-f(忽略大小写),-d(只对空格数字字母排序),-r(逆序)的组合使用,因此,基本完成了如书上所说,可以进行索引排序.但是哪怕是这一个…
php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04   这篇文章主要介绍了php对二维数组进行相关操作,包括php对二维数组排序.转换.去空白,以及去重复值等,感兴趣的小伙伴们可以参考一下   技巧提示: ? 1 2 3 4 5 6 7 8 9 array_keys($array) //返回所有键名    array_values($array) //返回所有键值     $result=array_revers…
public interface IOrderByExpression<TEntity> where TEntity : class { IOrderedQueryable<TEntity> ApplyOrderBy(IQueryable<TEntity> query); IOrderedQueryable<TEntity> ApplyThenBy(IOrderedQueryable<TEntity> query); } public class…
多字段排序 添加到 LINQ 查询结果中的Take()扩展方法用于提取前 个结果: private static void Ordering() { var racers = (from r in Formula1.GetChampions() orderby r.Country, r.LastName, r.FirstName ); foreach (var racer in racers) { Console.WriteLine("{0:C}: {0:L}, {0:F}", rac…
Wordpress中,根据根据自定义字段排序和查询是通过WP_Query()方法 如根据 一个自定义的sort的数字字段从小到大进行排序 $args = array( 'post_type' => 'product', 'orderby' => array( 'meta_value_num'=>'ASC' ), 'meta_key' => 'sort', ); $query = new WP_Query( $args ); 如根据自定义字段排序和查询,则可以使用meta_query…
Java 反射类:ReflexUtil public class ReflexUtil { static Logger logger = LoggerFactory.getLogger(ReflexUtil.class); //getMethod static public Object invokeMethod(String propertiesName, Object object) { try { if(object==null) return null; if (!propertiesN…
原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort —      使用用户自定义的比较函数对数组中的值进行排序 说明       bool usort        ( array &$array       , callable $cmp_function       ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. Note: 如果两个成员比较结果相同…
  原文:http://blog.csdn.net/kunshan_shenbin/article/details/7644603  CakePHP下使用paginator需要对多个字段排序的做法 2012-06-08 11:03 448人阅读 评论(0) 收藏 举报 有的时候在进行翻页时需要对多个字段进行排序. 但是CakePHP的paginator的sort方法默认只能对一个字段进行排序. 解决的办法有2种: 1. 在model中追加一个虚拟字段: http://book.cakephp.o…
LINQ 按多个字段排序(orderby.thenby.Take) orderby  子句解析为 OrderBy()方法,orderby descending 子句解析为OrderBy Descending()方法: var racers = Formula1.GetChampions(). Where(r = > r.Country == "Brazil"). OrderByDescending(r = > r.Wins). Select(r = > r); Ord…
前沿 园子里已有挺多博文介绍了EFCore+Mysql/MSSql如何进行使用,但实际开发不会把EF层放在Web层混合起来,需要多个项目配合结构清晰的进行分层工作,本文根据个人实践经验总结将各个项目进行分层,仅供想自己搭建,包含数据仓储以及分页多字段排序. 目录结构 1.实体层(EF)搭建 1.1添加Nuget包 1.2添加实体 1.3构造DbContext 1.4数据迁移生成数据库 2.仓储层搭建 2.1添加Nuget包 2.2添加必要的支持IEnumerable<T>和IQueryable…