【php】将php中的数组元祖按照字符串长度进行排序

如果想在PHP编程中对数组进行操作,可以用到有关的PHP数组函数来达到自己的需求。今天我们将为大家介绍的时候有关PHP数组按字符串长短排序的实现方法。

需求分析:让搜索出结果中将相关度高(关键字所占比例大的结果排在前面)。比如你搜索“红”这个关键字,那么《红》这部动漫在结果中的排序就要大于《小红帽》,因为它的关键字比率大。于是就产生了一个特殊的需求,给出一个php的数组,内容都是字符串,需要按照字符串的长短重新进行一次排序。php提供的数组函数只能按照英文顺序这样的排序,于是google一下,发现了解决方案,就是使用PHP的自定义排序函数usort。

 
 
  1. bool usort ( array & $array ,
     callback $cmp_function )  

其实PHP数组按字符串长短排序的方法就像以前计算机课程学习的冒泡排序法,它接受两个参数,第一个是要排序的数组,第二个是回调函数,就是排序的条件。usort相当于一个递归,根据条件的返回值来判断是否将两个邻近的数组(如$a,$b)进行对调,达到了排序的目的。如果根据冒泡排序法,这个条件就是$a>$b这样的。那么如果是要根据字符串长短,那么就是strlen($a)-$strlen($b)这样的格式了。自己写callback函数,可以完成各种各样诡异的排序来。那么,CoCo现在的代码就可以这样写了:

 
 
  1. $aS = array('aaa', 'aa', 'aaaa', 'aaaaa');   
  2. $F = create_function('$a, $b', 
    'return(strLen($a) 
    > strLen($b))');   
  3. usort($aS, $F);  

希望通过以上介绍的PHP数组按字符串长短排序的实现方法,大家能够充分掌握这一技巧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值