PHP数组内容不重复组合排列算法

Posted 桥洞下的程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数组内容不重复组合排列算法相关的知识,希望对你有一定的参考价值。

function getArrSet($arrs,$_current_index=-1)
{
//总数组
static $_total_arr;
//总数组下标计数
static $_total_arr_index;
//输入的数组长度
static $_total_count;
//临时拼凑数组
static $_temp_arr;

//进入输入数组的第一层,清空静态数组,并初始化输入数组长度
if($_current_index<0)
{
$_total_arr=array();
$_total_arr_index=0;
$_temp_arr=array();
$_total_count=count($arrs)-1;
getArrSet($arrs,0);
}
else
{
//循环第$_current_index层数组
foreach($arrs[$_current_index] as $v)
{
//如果当前的循环的数组少于输入数组长度
if($_current_index<$_total_count)
{
//将当前数组循环出的值放入临时数组
$_temp_arr[$_current_index]=$v;
//继续循环下一个数组
getArrSet($arrs,$_current_index+1);

}
//如果当前的循环的数组等于输入数组长度(这个数组就是最后的数组)
else if($_current_index==$_total_count)
{
//将当前数组循环出的值放入临时数组
$_temp_arr[$_current_index]=$v;
//将临时数组加入总数组
$_total_arr[$_total_arr_index]=$_temp_arr;
//总数组下标计数+1
$_total_arr_index++;
}

}
}

return $_total_arr;
}

$arr=array(
array(‘1‘),
array(‘A‘,‘B‘,‘C‘),
array(‘c‘,‘b‘,‘a‘),
array(‘+‘,‘-‘,‘*‘)
);
print_r(getArrSet($arr));
























































以上是关于PHP数组内容不重复组合排列算法的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中查找数组元素的所有可能的唯一组合[重复]

php实现全组合算法

PHP 多个一维数组排列组合的所有可能

求一个PHP计算数组内元素的不同组合,请看案例

如何在没有顺序重复的情况下获得 PHP 中的所有排列?

PHP查找数组的所有(有点)唯一组合