PHP implements a method to find the full arrangement of an array and all combinations of elements

墨辰丷
Release: 2023-03-27 20:28:02
Original
2903 people have browsed it

The following editor will bring you a summary of the method of searching for the full arrangement of an array and all combinations of elements in PHP. The editor thinks it’s pretty good, so I’ll share it with you now and give it as a reference. Let’s follow the editor and take a look.

The example in this article describes the method of finding the full arrangement of an array and a summary of all combinations of elements in PHP.

Share it with everyone for your reference, the details are as follows:

##

<?php
$source = array(&#39;pll&#39;,&#39;我&#39;,&#39;爱&#39;,&#39;你&#39;,&#39;嘿&#39;);
sort($source); //保证初始数组是有序的
$last = count($source) - 1; //$source尾部元素下标
$x = $last;
$count = 1; //组合个数统计
echo implode(&#39;,&#39;, $source), "<br>"; //输出第一种组合
while (true) {
 $y = $x--; //相邻的两个元素
 if ($source[$x] < $source[$y]) { //如果前一个元素的值小于后一个元素的值
  $z = $last;
  while ($source[$x] > $source[$z]) { //从尾部开始,找到第一个大于 $x 元素的值
   $z--;
  }
  /* 交换 $x 和 $z 元素的值 */
  list($source[$x], $source[$z]) = array($source[$z], $source[$x]);
  /* 将 $y 之后的元素全部逆向排列 */
  for ($i = $last; $i > $y; $i--, $y++) {
   list($source[$i], $source[$y]) = array($source[$y], $source[$i]);
  }
  echo implode(&#39;,&#39;, $source), "<br>"; //输出组合
  $x = $last;
  $count++;
 }
 if ($x == 0) { //全部组合完毕
  break;
 }
}
echo &#39;Total: &#39;, $count, "\n";
?>
Copy after login

The above is the entire content of this article, I hope it will be helpful to everyone's study.


Related recommendations:

php Method to get a random combination from a specified number

Visitor pattern and combination in object-oriented PHPDetailed explanation of pattern

js merge numbercombination Detailed explanation of the steps to generate key: value

The above is the detailed content of PHP implements a method to find the full arrangement of an array and all combinations of elements. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!