自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

將php的數(shù)組按照字符串長短進行排序

開發(fā) 后端
PHP數(shù)組按字符串長短排序?qū)τ诔跫塒HP學員來說還不是非常熟悉。我們在接下來的文章中給出了具體的實現(xiàn)方法,僅供大家參考。

如果想在PHP編程中對數(shù)組進行操作,可以用到有關(guān)的PHP數(shù)組函數(shù)來達到自己的需求。今天我們將為大家介紹的時候有關(guān)PHP數(shù)組按字符串長短排序的實現(xiàn)方法。

#t#需求分析:讓搜索出結(jié)果中將相關(guān)度高(關(guān)鍵字所占比例大的結(jié)果排在前面)。比如你搜索“紅”這個關(guān)鍵字,那么《紅》這部動漫在結(jié)果中的排序就要大于《小紅帽》,因為它的關(guān)鍵字比率大。于是就產(chǎn)生了一個特殊的需求,給出一個php的數(shù)組,內(nèi)容都是字符串,需要按照字符串的長短重新進行一次排序。php提供的數(shù)組函數(shù)只能按照英文順序這樣的排序,于是google一下,發(fā)現(xiàn)了解決方案,就是使用PHP的自定義排序函數(shù)usort。

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

其實PHP數(shù)組按字符串長短排序的方法就像以前計算機課程學習的冒泡排序法,它接受兩個參數(shù),第一個是要排序的數(shù)組,第二個是回調(diào)函數(shù),就是排序的條件。usort相當于一個遞歸,根據(jù)條件的返回值來判斷是否將兩個鄰近的數(shù)組(如$a,$b)進行對調(diào),達到了排序的目的。如果根據(jù)冒泡排序法,這個條件就是$a>$b這樣的。那么如果是要根據(jù)字符串長短,那么就是strlen($a)-$strlen($b)這樣的格式了。自己寫callback函數(shù),可以完成各種各樣詭異的排序來。那么,CoCo現(xiàn)在的代碼就可以這樣寫了:

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

希望通過以上介紹的PHP數(shù)組按字符串長短排序的實現(xiàn)方法,大家能夠充分掌握這一技巧。

責任編輯:曹凱 來源: acwind.net
相關(guān)推薦

2009-11-25 09:13:41

PHP數(shù)組轉(zhuǎn)字符串PHP字符串轉(zhuǎn)數(shù)組

2009-11-25 16:55:45

PHP函數(shù)explod

2009-11-16 17:59:13

PHP數(shù)組轉(zhuǎn)字符串

2009-11-27 10:24:25

PHP字符串操作

2009-11-30 14:08:42

PHP字符串原理

2021-01-30 15:41:12

字符串功能綁定

2009-12-01 10:38:08

PHP字符串函數(shù)

2009-11-26 18:36:52

PHP函數(shù)sprint

2009-11-24 09:55:44

PHP字符串函數(shù)

2009-12-11 13:16:04

PHP查詢字符串

2010-11-26 11:08:20

MySQL字符串

2009-11-30 18:26:06

PHP字符串替換

2009-11-24 17:45:47

PHP數(shù)組排序函數(shù)ar

2009-08-07 14:15:21

C#字符串分割

2009-11-26 13:11:24

PHP字符串

2009-12-01 09:18:50

PHP分割字符串

2010-04-27 12:19:57

Unix字符串

2010-07-14 16:21:48

Perl

2009-11-26 16:26:32

PHP字符串mbstr

2009-11-18 12:38:04

PHP字符串函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號