PHP 字符串全排列

<?php
$s=’abcd’;

$arr=checktotal($s);
echo count($arr);
echo “<pre>”;
print_r($arr);


//计算字符串长度
function checktotal($str)
{
$len=strlen($str);
if($len>1)
{//如果长度大于1
for($i=0;$i<$len;$i++)
{
$nstr=checkstr($str,$i);//得出字符串中任意$len-1个字母组成的字符串
$arr=checktotal($nstr);//递归求出该长度为$len-1的字符串的全排列,返回全排列数组
if(count($arr))
{
foreach ($arr as $value)
{
$narr[]=$str[$i].$value;
}
}
}
}
else
{
$narr[]=$str;
}
return $narr;
}

//去掉字符串中的任意项,返回一个新的字符串
function checkstr($str,$i)
{
$s = ”;
for($n=0;$n<strlen($str);$n++)
{
if($n!=$i)
{
$s .=$str{$n};
}
}
return $s;
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注