数组排序

php二维数组排序方法(array_multisort usort)

半城伤御伤魂 提交于 2019-12-10 08:51:21
一维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现. 例如像下面的数组: 复制代码 代码如下: $users = array( array('name' => 'tom', 'age' => 20) , array('name' => 'anny', 'age' => 18) , array('name' => 'jack', 'age' => 22) ); 希望能按照age从小到大进行排序。笔者整理了两个方法出来,分享给大家。 1、使用array_multisort 使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下: 复制代码 代码如下: $ages = array(); foreach ($users as $user) { $ages[] = $user['age']; } array_multisort($ages, SORT_ASC, $users); 执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用: 复制代码 代码如下: array_multisort($ages, SORT_ASC,

Objective C中数组排序几种情况的总结

血红的双手。 提交于 2019-12-05 03:55:38
大体上,OC中常用的数组排序有以下几种方法:sortedArrayUsingSelector:;sortedArrayUsingComparator:;sortedArrayUsingDescriptors: 1、简单排序( sortedArrayUsingSelector:) 如果只是对字符串的排序,可以利用sortedArrayUsingSelector:方法就可以了,代码如下 //简单排序 void sortArray1(){ NSArray *array = [NSArray arrayWithObjects:@"abc",@"456",@"123",@"789",@"ef", nil]; NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"排序后:%@",sortedArray); } 当然,除了利用字符串自带的compare:方法,也可以自己写compare:方法,进行对象的比较;如下: 首先是新建了Person类,实现方法如下(头文件就省了): #import "Person.h" @implementation Person //直接实现静态方法,获取带有name和age的Person对象 +(Person *)personWithAge:(int)