我按照字母順序對數據進行排序,儘管以「the」開頭的條目我希望忽略第一個詞的排序,並且用第二個詞排序。忽略「the」php/mysql輸出
例如「視圖」將列在V下,而不是T,最好的方法是什麼?
我知道有一個簡單的小東西,我可以做,因爲我用它做回來的一天,但不能爲我的生活記住。謝謝。
我按照字母順序對數據進行排序,儘管以「the」開頭的條目我希望忽略第一個詞的排序,並且用第二個詞排序。忽略「the」php/mysql輸出
例如「視圖」將列在V下,而不是T,最好的方法是什麼?
我知道有一個簡單的小東西,我可以做,因爲我用它做回來的一天,但不能爲我的生活記住。謝謝。
從MySQL獲得一個結果的順序指定,你可以使用:
ORDER BY TRIM(LEADING 'The ' FROM entry)
這將刪除多次出現,所以例如'The The Now'將被返回爲'Now'。 此外,它只會在單詞「The」後面拉出單個空格。
這可能區分大小寫。
嘗試:
SELECT COLUMN FROM TABLE ORDER BY TRIM(LEADING 'The ' FROM COLUMN);
您可以使用自己的比較功能,使PHP需要第二個字,如果該指數以 「的」 啓動:
function cmp($a, $b) {
$a = preg_replace("/^the /i","",$a);
$b = preg_replace("/^the /i","",$b);
return strcmp($a,$b);
}
和排序:
$array = array("The Vektor", "Apple", "The Anchor", "Bee");
usort($array, 'cmp');
print_r($array);
我認爲這應該工作..;)..另外,它不會從文本中刪除「The」,因爲比較的VA riables只是當地:)
輸出:
Array ([0] => The Anchor [1] => Apple [2] => Bee [3] => The Vektor)
我想你想包含在該正則表達式中的空間。沒有它,不會有像例如'主題和作品'將被比作'mes和作品'? – spencer7593 2012-08-08 22:02:28
你是對的;) - >糾正它..我可以離開修剪然後:P – r3bel 2012-08-08 22:08:07