我想在
PHP中对字符串进行排序,并且匹配应该首先在子字符串的第一个字母上完成,然后在整个字符串的字母上完成.
例如,如果有人搜索,则列表包含
Adolf Doe Done
结果应该是
Doe Done Adolf
使用常规排序($array,SORT_STRING)或类似的东西不起作用,Adolf先于其他排序.
有人知道怎么做吗?
usort(array,callback)
允许您根据回调进行排序.
例子(像这样,没试过)
usort($list,function($a,$b) { $posa = strpos(tolower($a),'do'); $posb = strpos(tolower($b),'do'); if($posa != 0 && $posb != 0)return strcmp($a,$b); if($posa == 0 && $posb == 0)return strcmp($a,$b); if($posa == 0 && $posb != 0)return -1; if($posa != 0 && $posb == 0)return 1; });