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


Posted in PHP onMay 05, 2016

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
PHP Document 代码注释规范
Apr 13 PHP
PHP 面向对象实现代码
Nov 11 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
php上传文件问题汇总
Jan 30 PHP
php实现word转html的方法
Jan 22 PHP
PHP静态成员变量
Feb 14 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
PhpStorm本地断点调试的方法步骤
May 21 PHP
php对微信支付回调处理的方法
Aug 23 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
php遍历解析xml字符串的方法
May 05 #PHP
Joomla调用系统自带编辑器的实现方法
May 05 #PHP
yii2超好用的日期组件和时间组件
May 05 #PHP
Joomla语言翻译类Jtext用法分析
May 05 #PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 #PHP
joomla实现注册用户添加新字段的方法
May 05 #PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 #PHP
You might like
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
jQuery MD5加密实现代码
2010/03/15 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
javascript版2048小游戏
2015/03/18 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
Python的组合模式与责任链模式编程示例
2016/02/02 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
python3.4实现邮件发送功能
2018/05/28 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
通过shell+python实现企业微信预警
2019/03/07 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
员工评语大全
2014/01/19 职场文书
成人继续教育实施方案
2014/03/01 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
党员自我剖析材料
2014/08/31 职场文书
工地食品安全责任书
2015/05/09 职场文书
团结主题班会
2015/08/13 职场文书
考研经验交流会策划书
2015/11/02 职场文书
小学四年级作文之写景
2019/08/23 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS