我按照字母顺序对数据进行排序,尽管以“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