The example in this article describes the method of finding the full arrangement of an array and all combinations of elements in PHP. Share it with everyone for your reference, the details are as follows:
<?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $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(',', $source), "<br>"; //输出组合 $x = $last; $count++; } if ($x == 0) { //全部组合完毕 break; } } echo 'Total: ', $count, "\n"; ?>
Readers who are interested in more PHP-related content can check out the special topics of this site: "Complete PHP Array (Array) Operation Skills", "Summary of PHP Mathematical Operation Skills", "Summary of the usage of PHP regular expressions", "Summary of PHP+ajax skills and applications", "Summary of the usage of PHP operations and operators", "Summary of PHP network programming skills", "Introduction to PHP basic syntax", "php date and time" Usage Summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary", "php+mysql database operation introductory tutorial" and "php common database operation skills summary"
I hope that this article will be helpful Everyone PHP programming helps.
The above introduces the method of searching for the full arrangement of an array and all combinations of elements in PHP, including methods and PHP content. I hope it will be helpful to friends who are interested in PHP tutorials.