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 相关文章推荐
如何正确理解PHP的错误信息
Oct 09 PHP
php 文件上传类代码
Aug 06 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
phpStudy配置多站点多域名和多端口的方法
Sep 01 PHP
yii2 上传图片的示例代码
Nov 02 PHP
php和vue配合使用技巧和方法
May 09 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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下打开URL地址的几种方法小结
2010/05/16 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python输出指定月份日历的方法
2015/04/23 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
利用python开发app实战的方法
2019/07/09 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
python实现四人制扑克牌游戏
2020/04/22 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
戴尔英国官网:Dell英国
2017/05/27 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
SQL Server笔试题
2012/01/10 面试题
大学生物业管理求职信
2013/10/24 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
工作求职自荐信
2014/06/13 职场文书
民事授权委托书范文
2014/08/02 职场文书
2014年学生工作总结
2014/11/20 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
pycharm无法安装cv2模块问题
2022/05/20 Python