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


Posted in PHP onMarch 14, 2017

本文实例讲述了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 相关文章推荐
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
PHP三层结构(上) 简单三层结构
Jul 04 PHP
php学习笔记(三)操作符与控制结构
Aug 06 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
php延迟静态绑定实例分析
Feb 08 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
php简单获取目录列表的方法
Mar 24 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 #PHP
Linux下快速搭建php开发环境
Mar 13 #PHP
php创建图像具体步骤
Mar 13 #PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 #PHP
PHP计算近1年的所有月份
Mar 13 #PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 #PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 #PHP
You might like
php 接口类与抽象类的实际作用
2009/11/26 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php实现的短网址算法分享
2014/06/20 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
javascript获取flash版本号的方法
2014/11/20 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
浅谈webpack组织模块的原理
2018/03/10 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
python字典的常用方法总结
2019/07/31 Python
python 内置函数汇总详解
2019/09/16 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
allbeauty美国:英国在线美容店
2019/03/11 全球购物
判断单链表中是否存在环
2012/07/16 面试题
怎样有效的进行自我评价
2013/10/06 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
超市食品安全承诺书
2015/04/29 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
党员读书活动心得体会
2016/01/14 职场文书
高中数学教学反思范文
2016/02/18 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL