将php的数组按照字符串长短进行排序
2013-09-04 21:49
639 查看
如果想在需求分析:让搜索出结果中将相关度高(关键字所占比例大的结果排在前面)。比如你搜索“红”这个关键字,那么《红》这部动漫在结果中的排序就要大于《小红帽》,因为它的关键字比率大。于是就产生了一个特殊的需求,给出一个php的数组,内容都是字符串,需要按照字符串的长短重新进行一次排序。php提供的数组函数只能按照英文顺序这样的排序,于是google一下,发现了解决方案,就是使用PHP的自定义排序函数usort。
bool usort ( array & $array ,
callback $cmp_function ) 其实PHP数组按字符串长短排序的方法就像以前计算机课程学习的冒泡排序法,它接受两个参数,第一个是要排序的数组,第二个是回调函数,就是排序的条件。usort相当于一个递归,根据条件的返回值来判断是否将两个邻近的数组(如$a,$b)进行对调,达到了排序的目的。如果根据冒泡排序法,这个条件就是$a>$b这样的。那么如果是要根据字符串长短,那么就是strlen($a)-$strlen($b)这样的格式了。自己写callback函数,可以完成各种各样诡异的排序来。那么,CoCo现在的代码就可以这样写了:
$aS = array('aaa', 'aa', 'aaaa', 'aaaaa'); $F = create_function('$a, $b',
'return(strLen($a) > strLen($b))'); usort($aS, $F); 希望通过以上介绍的PHP数组按字符串长短排序的实现方法,大家能够充分掌握这一技巧。
bool usort ( array & $array ,
callback $cmp_function ) 其实PHP数组按字符串长短排序的方法就像以前计算机课程学习的冒泡排序法,它接受两个参数,第一个是要排序的数组,第二个是回调函数,就是排序的条件。usort相当于一个递归,根据条件的返回值来判断是否将两个邻近的数组(如$a,$b)进行对调,达到了排序的目的。如果根据冒泡排序法,这个条件就是$a>$b这样的。那么如果是要根据字符串长短,那么就是strlen($a)-$strlen($b)这样的格式了。自己写callback函数,可以完成各种各样诡异的排序来。那么,CoCo现在的代码就可以这样写了:
$aS = array('aaa', 'aa', 'aaaa', 'aaaaa'); $F = create_function('$a, $b',
'return(strLen($a) > strLen($b))'); usort($aS, $F); 希望通过以上介绍的PHP数组按字符串长短排序的实现方法,大家能够充分掌握这一技巧。
相关文章推荐
- 【php】将php中的数组元祖按照字符串长度进行排序
- PHP 字符串数组按照拼音排序的问题
- 在PHP中,将一个汉字数组按照拼音首字母进行排序
- PHP对多维数组按照某个键值大小进行排序
- PHP 多维数组按照指定的顺序进行排序
- java 给定一个字符串数组。按照字典顺序进行从小到大的排序。
- 一月十日练习习题,1数组数据存入字典并输出2降序 和倒叙 输出数组中内容3对字符串当中信息进行查找是否存在4 把数组当中信息按照中文排序
- 按照字符串的长短进行排序
- php 对数组按照字符串长度排序
- php二维数组排序 按照指定的key 对数组进行排序
- 按照字典顺序对字符串数组进行从大到小的排序。
- PHP将二位数组按照第二维的某个元素的值进行排序
- 给定一个字符串数组{"nba","abc","cba","zz","qq","haha"},请按照字典顺序进行从小到大的排序。
- 输入整型数组和排序标识,对其元素按照升序或降序进行排序
- 数组按照拼音首字母排序后转为字符串
- 9.11排序与查找(二)——对字符串数组进行排序,将全部的变位词排在相邻的位置
- 对字符串数组进行排序
- mysql查询按照指定字符串进行排序
- 使用JavaScript完成一个对字符串数组进行排序的小程序
- mysql数值字符串类型的按照数值进行排序