当前位置:首页 > 日记 > 正文

php求数组全排列,元素所有组合的方法总结

php求数组全排列,元素所有组合的方法总结

本文实例讲述了php求数组全排列,元素所有组合的方法总结。

分享给大家供大家参考,具体如下:

<?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";?>

以上这篇php求数组全排列,元素所有组合的方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

PS合成漂亮的圣诞海报

PS合成漂亮的圣诞海报

圣诞,海报,漂亮,电脑软件,PS,当接到需求后先不要急于动手开始做,除非你非常聪明,脑海中已经有具体实施方案及每一步的细节(我相信一般没人会有)。如果你没有,那就乖乖的做好前期的准备,下面为大家详细介绍PS合成漂亮的圣诞海报方法,来看看吧!以上就…

Angular移动端页面input无法输入的

Angular移动端页面input无法输入的

输入,解决方法,移动端,页面,电脑软件,解决方法:用angular写手机页面,有时候会发现input输入框点击了却不能输入,或者长按才能输入,可能是因为input绑定了ng-click导致,可去掉ng-click,将ng-click绑定的方法改用ng-focus就好了以上这篇Angular移动…

js-FCC算法-No repeats please字符

js-FCC算法-No repeats please字符

全排列,字符串,算法,详解,电脑软件,把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准例如, aab 应该返回 2 因为它总共有6中排列 (aab, aab, aba, aba, baa, baa),但…

如何设置让PPT2007自动播放功能

如何设置让PPT2007自动播放功能

动画,自动播放,如何设置,功能,电脑软件,  试试让PPT自动播放,这样可以省去我们的麻烦,而且自动播放的时间间隔可以任由你设定。以下是小编为您带来的关于让PPT2007自动播放动画,希望对您有所帮助。让PPT2007自动播放动画一、所有页面按统一…

基于jQuery实现推拉门动画效果的两

基于jQuery实现推拉门动画效果的两

方法,动画效果,推拉门,两种,电脑软件,''推拉门''动效也可以称作"手风琴"效果,大多数效果实现的思路基本是一样的,下面介绍两种方法,一种是通过改变图片的偏移位置实现移动,另一种是通过遍历背景图片后改变图片的宽度实现变换。实现方法一…

QQ音乐如何列表循环 QQ音乐单曲循

QQ音乐如何列表循环 QQ音乐单曲循

循环,音乐,列表,单曲,电脑软件,QQ音乐是我们经常使用的一款免费的音乐软件。小编也经常用它听歌,更新了版本的QQ音乐很多功能的入口都不同了,下面小编为大家介绍一下qq音乐怎么设置播放方式1、打开qq音乐, 找到自己心爱的歌曲后播放,找到我们点…

史上最全JavaScript数组去重的十种

史上最全JavaScript数组去重的十种

数组去重,方法,推荐,史上,最全,一、前言:我们在实际工作中,或者在面试找工作时,都会用到或者被问到一个问题,那就是“数组如何去重”。是的,这个问题有很多种解决方案,看看下面的十种方式吧!二、数组去重方式大汇总:Methods 1: 思路:定义一个新数组,…

IIS7.5 http 1.1 新建应用程序失败

IIS7.5 http 1.1 新建应用程序失败

解决方法,应用程序,电脑软件,http,今天突然服务器接口默认的主机头打开报错,错误信息是:http 1.1 新建应用程序失败,很奇怪,后来经过研究才发现是改动了IIS名字,分享下如何解决的。解决方法很简单: 1.退出IIS重新启动 2.然后点击:应用池程序-Defau…

git提交空目录的方法

git提交空目录的方法

方法,提交,目录,电脑软件,git,前言git和 svn不同,仅仅跟踪文件的变动,不跟踪目录。所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的。只跟踪文件变化,不跟踪目录,这么设计是有原因的。但这…

JavaScript中无法通过div.style.le

JavaScript中无法通过div.style.le

解决方法,获取值,电脑软件,div,JavaScript,一、问题总结: 样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取。 让元素移动到200停止setTimeout ( functio…

受损的dll文件如何修复

受损的dll文件如何修复

文件,受损,电脑软件,dll,电脑使用时间长了,经常会遇到这样一种问题,在你打开某个程序,会弹出一个提示窗口,提示程序中某个dll文件丢失或损坏,无法正常运行。其实这时候我们可以试着去网上下载相同的dll文件,说不定可以解决了,下面是给大家推荐一个…

JS获取数组中出现次数最多及第二多

JS获取数组中出现次数最多及第二多

方法,组中,次数最多,电脑软件,JS,本文实例讲述了JS获取数组中出现次数最多及第二多元素的方法。分享给大家供大家参考,具体如下:整型数组中出现次数最多和第二多的元素用哈希数组function f(arr){ var i; var length=arr.length; var hash…