將php的數組按照字串長短進行排序_PHP教程

來源:互聯網
上載者:User
如果想在需求分析:讓搜尋出結果中將相關度高(關鍵字所佔比例大的結果排在前面)。比如你搜尋“紅”這個關鍵字,那麼《紅》這部動漫在結果中的排序就要大於《小紅帽》,因為它的關鍵字比率大。於是就產生了一個特殊的需求,給出一個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數組按字串長短排序的實現方法,大家能夠充分掌握這一技巧。


http://www.bkjia.com/PHPjc/446223.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446223.htmlTechArticle如果想在 需求分析:讓搜尋出結果中將相關度高(關鍵字所佔比例大的結果排在前面)。比如你搜尋紅這個關鍵字,那麼《紅》這部動漫在...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.