PHP中数组的排列

时间:2019-06-11 12:49:59

标签: php permutation

我正在使用以下代码(https://www.hashbangcode.com/article/getting-all-permutations-array-php)来获取PHP中数组的所有排列:

$list = array();
function recursive_permutations($items,$perms = array( ))
{
 static $list;
 if (empty($items)) {
  $list[] = join(',', $perms);
 } else {
  for ($i = count($items)-1;$i>=0;--$i) {
   $newitems = $items;
   $newperms = $perms;
   list($foo) = array_splice($newitems, $i, 1);
   array_unshift($newperms, $foo);
   recursive_permutations($newitems, $newperms);
  };
  return $list;
 };
}
// FIRST RUN
$perms = recursive_permutations(range(1,3));
echo '<pre>' . print_r($perms, true) . '</pre>';
// SECOND RUN
$perms = recursive_permutations(range(4,6));
echo '<pre>' . print_r($perms, true) . '</pre>';

如果我执行一次该函数,它将很好地工作。但是,如果需要为第二个数组重复该过程,则将结果添加到第一个结果中。

如何在第一次运行后清除结果?

1 个答案:

答案 0 :(得分:1)

LocalDateRangeFilter.filter