获取中英文字符串按序全排列

/**

* 获取字符串按序全排列(英文) e.g. abcd => a ab abc abcd b bc bcd c cd d

*

* @param $str

* @param string $separator

* @return array

*/

function getSortCombinations($str, $separator = '') {

    if ($separator !== '') {

        $chars = explode($separator, $str);

    } else {

        $chars = str_split($str);

    }

    $res = $chars;

    $count = count($chars);

    for ($i = 0; $i < $count - 1; $i++) {

        $tmp = $chars[$i];

        for ($j = $i + 1; $j < $count; $j++) {

            $tmp = $tmp . $chars[$j];

            $res[] = $tmp;

        }

}

    return $res;

}

/**

* 获取字符串按序全排列(中文)

*

* @param $str

* @return array

*/

function getSortCombinationsChinese($str) {

    $chars = preg_split('/(?<!^)(?!$)/u', $str);

    $res = $chars;

    $count = count($chars);

    for ($i = 0; $i < $count - 1; $i++) {

        $tmp = $chars[$i];

        for ($j = $i + 1; $j < $count; $j++) {

            $tmp = $tmp . $chars[$j];

            $res[] = $tmp;

        }

}

    return $res;

}

推荐: 浮生无事的博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,736评论 0 3
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,438评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,068评论 0 2
  • 在北京的5天转瞬即逝,在火车上,看着照片,不禁潸然泪下。 回忆今天,是本次研学的最后一天,我们去北京参观了清华大学...
    张嘉燕阅读 189评论 0 0
  • 想了很多煽情的话,开始写的时候却忘记了,但唯独和你说晚安不会忘记。 本命年结束了,没有想象中的倒霉,可能是我的想象...
    想要起飞的懒癌患者阅读 240评论 0 1