欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

全排列(PHP)

程序员文章站 2022-03-26 09:28:55
/** * 全排列结果集 * @var array */private $fullPermutationArr = []; /** * 全排列 * User: Lindsay * Date: 2018/9/6 * Time: 9:43 * @param $arr * @param string $s ......
/**
* 全排列结果集
* @var array
*/
private $fullpermutationarr = [];

/**
* 全排列
* user: lindsay
* date: 2018/9/6
* time: 9:43
* @param $arr
* @param string $str
*/
public function fullpermutation($arr, $str = '')
{
$cnt = count($arr);
if ($cnt == 1) {
array_push($this->fullpermutationarr, $str ? $str . ',' . $arr[0] : $arr[0]);
} else {
for ($i = 0; $i < count($arr); $i++) {
$tmp = $arr[0];
$arr[0] = $arr[$i];
$arr[$i] = $tmp;
$this->fullpermutation(array_slice($arr, 1), $str ? $str . ',' . $arr[0] : $arr[0]);
}
}
}

// 调用

$this->fullpermutation([1, 2, 3, 4]);
$result = $this->fullpermutationarr;