加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 排序字符串,首先是字母,然后是字母内的字母

发布时间:2020-12-13 17:57:03 所属栏目:PHP教程 来源:网络整理
导读:我想在 PHP中对字符串进行排序,并且匹配应该首先在子字符串的第一个字母上完成,然后在整个字符串的字母上完成. 例如,如果有人搜索,则列表包含 AdolfDoeDone 结果应该是 DoeDoneAdolf 使用常规排序($array,SORT_STRING)或类似的东西不起作用,Adolf先于其他排
我想在 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;
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读